現世代Javaの動向 1
at TECH
681:デフォルトの名無しさん
08/05/26 11:09:32
>>635
そのパフォーマンスを改善するために
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を使うのもお勧め
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5495日前に更新/239 KB
担当:undef