現世代Javaの動向 1
■ このスレッドは過去ログ倉庫に格納されています
0681デフォルトの名無しさん
2008/05/26(月) 11:09:32そのパフォーマンスを改善するために
BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.TEN
というものが用意されているわけだが。
Factory MethodパターンやProxyパターンなどを使って一度newした値を
再利用することでパフォーマンスを改善することができるぞ。ZEROもONEもそれと同じ仕組みだ。
Number#valueOf()はみんなそういう仕組み。
ただし小数を引数にしてBigDecimal#valueOf(double)で型を生成するのは
10進2進変換誤差が生じるのでやはり
new BigDecimal(String, MathContext)をお勧めするが。
どうしてもパフォーマンスが気になるなら
よく使うと想定される数字は
final BigDecimal PI = 3.14 = new BigDecimal("3.14");
のようにあらかじめつくっておくといい。
Factory Methodを使うのもお勧め
■ このスレッドは過去ログ倉庫に格納されています