编程语言
首页 > 编程语言> > java-从字符串实例化BigDecimal的最快方法

java-从字符串实例化BigDecimal的最快方法

作者:互联网

考虑一个应用程序

>从文本文件读取数千个String值.
>(通过正则表达式匹配)选择那些代表数字的值(从简单的整数到以尾数科学记数法表示的非常大的值).
>对于代表数字的每个String值,实例化一个BigDecimal对象(每秒总计数千个Bigdecimal对象).
>使用每个实例化的BigDecimal对象进行进一步处理.

在上述情况下,显然每个BigDecimal对象的实例化都会对性能产生影响.

从非null字符串str实例化那些BigDecimal对象的一种方法是:

BigDecimal number = new BigDecimal(str.toCharArray(), 0, str.length()));

String constructor of BigDecimal正是在JDK的Oracle实现中扩展的.

是否有更快的方法从此类字符串实例化BigDecimal对象,或通过替代方法?

解决方法:

我会用

BigDecimal number = new BigDecimal(str);

这比较简单,而且差异不大可能无关紧要.

如果您需要性能,而又不需要超过15位的精度,则可以改用double.

您需要提高性能我将在微优化之前查看整个应用程序的性能.您提到使用正则表达式,并且与创建字符串或BigDecimal相比,它可以使用更多的CPU.您可以描述您的应用程序吗?

标签:performance,instantiation,bigdecimal,java
来源: https://codeday.me/bug/20191031/1977682.html