[英]Fastest way to instantiate BigDecimal from string
考虑一个应用程序
String
值。 String
值,实例化一个BigDecimal
对象(每秒数千个Bigdecimal对象的总速率)。 BigDecimal
对象进行进一步处理。 鉴于上述情况,显然每个BigDecimal
对象的实例化都会对性能产生影响。
从非null String str
实例化那些BigDecimal
对象的一种方法是:
BigDecimal number = new BigDecimal(str.toCharArray(), 0, str.length()));
这正是BigDecimal的String构造函数在JDK
的Oracle
实现中扩展的内容。
是否有更快的方法从这些字符串实例化BigDecimal
对象,或通过替代方法?
我会用
BigDecimal number = new BigDecimal(str);
这更简单,差异不太重要。
如果您需要性能且不需要超过15位数的精度,则可以使用double
。
你需要表现我会在微观优化之前看看整个应用程序的性能。 您提到使用正则表达式,这可以使用比创建字符串或BigDecimal更多的CPU。 你能描述你的申请吗?
我同意差异不太重要,但我会使用valueOf,因为未来版本的java可能会缓存很多常见数字。
如果有很多可能相同的数字,那么BigDecimal
值的HashMap<String, BigDecimal>
'cache'可能会更快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.