PNS*_*PNS 1 java thread-safety bigdecimal compareto
我有一个Java应用程序,它使用类的compareTo()方法BigDecimal来根据类型(基本上,"太大",双重或浮动)对(大)实数进行分类,读取为字符串.应用程序每秒读取大量此类字符串,因此任何性能优化都是必不可少的.
以下是代码的缩写摘录:
static final BigDecimal MAX_LONG = new BigDecimal(Long.MAX_VALUE);
static final BigDecimal MAX_FLOAT = new BigDecimal(Float.MAX_VALUE);
static final BigDecimal MAX_DOUBLE = new BigDecimal(Double.MAX_VALUE);
String value = readValue(); // Read the number as a string
BigDecimal number = new BigDecimal(value);
if (number.compareTo(MAX_DOUBLE) > 0)
{
...
}
else if (number.compareTo(MAX_FLOAT) > 0)
{
...
}
else if (number.compareTo(MAX_LONG) > 0)
{
...
}
Run Code Online (Sandbox Code Playgroud)
那么,2个问题
由于BigDecimal是不可变的,因此它也是线程安全的.
您还应该使用BigDecimal.valueOf()而不是new BigDecimal()全部来利用可能的任何缓存.
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |