2017-06-21 11 views
0

メモリーを節約するために、Javaは値が以下の範囲にあるすべてのラッパー・オブジェクトを再利用します。 すべてのブール値(truefalse他のラッパー・オブジェクトがJavaで定数プールを使用しない理由と理由

すべてのバイト-128から127\u0000から\u007f

全ての文字の値(10進数で127に即ち0

全て短整数値を値。 例:ダブル、ロングとどのように異なる定数プールを使用して約

Integer i1=7; 
Integer i2=7; 
System.out.println(i1==i2);//true 

何? 例:

Double d1=7.2; 
Double d2=7.2; 
System.out.println(d1==d2);//false 
+0

のみ一般的に使用される値は、定数プールに保存されている(単純な2つの最終変数falsetrueあるBooleanの場合)、その入賞を有しています。長い値は小さな整数よりも一般的にはあまり一般的ではなく、2重値の使用には共通のパターンはありません。 – RealSkeptic

+0

'Long'sと' Double'sがたくさんあるので? – bradimus

+0

ブール値は2つあります。 -128から127までの範囲に256の整数があります。その範囲には何倍の倍数がありますか?単に多くの人にとって、しばしば使われる価値を選ぶことは、それらをキャッシュすることが理にかなっていることは本当に簡単なことではありません。 –

答えて

3

浮動小数点数の精度には制限があります。学校であなたの日に戻って考える。あなたが数学を学んだときに聞いたことがありますreal numbers ...

その意味で、私の答えはあなたに質問です:あなたは0.01と0.02の間にどのくらいの数のキャッシュをするか教えてください。

もちろん、答えは - 任意の2つの浮動小数点数の間には無制限の実数があります。したがって、絶対にの方法キャッシングこれらの番号があります。

0

私の意見では、DoubleFloatは、彼らがカシェをしゃべらないようにするために多くの価値を持っていなければならない、言い換えればそれは無効です。

LongBoolean

関連する問題