Java Constant Poolingテクノロジー
Javaの一般的なポイントは、一定のプーリングテクノロジーがJavaレベルのキャッシュテクノロジーであり、オブジェクトを簡単かつ迅速に作成できると言うことです。オブジェクトが必要な場合は、プールから取得します(誰もいない場合は、それを作成してプールに入れます)。次回同じ変数が必要な場合、それを再作成する必要はないため、スペースを節約できます。
Javaラッパークラスとオブジェクトプールの8つの基本タイプ
バイト、ブール、ショート、キャラクター、整数、および長期を含むJavaのラッパークラスの基本的なタイプは、定数プーリングテクノロジーを実装します(ブール値を除き、128未満の値に対してのみサポートされます)
たとえば、整数オブジェクト
整数i1 = 100;整数i2 = 100; //上記の2行のコードは、// integer i1 = integer.valueof(100); // integer i2 = integer.valueof(100); system.out.println(i1 = i2); integer i3 = 128; integer i3 = 128; integer i3 = 128; integer i3 = 128; 128; system.out.println(i3 == i4);
実行結果:
TrueFalse
理由整数オブジェクトのvalueof()のソースコードを見ます
public static integer valueof(int i){assert integercache.high> = 127; if(i> = integercache.low && i <= integercache.high)return integercache.cache [i +(-integercache.low)]; //この範囲内にない整数オブジェクトを再現します新しい整数(i);}-128〜127の整数オブジェクトのみが整数でキャッシュされ、一定のプーリング技術が使用されます。
private static class integercache {... static final integerキャッシュ[]; // integercacheクラスのキャッシュは最終的に変更され、キャッシュの役割を再生する静的配列です}文字列クラスの一定のプール
文字列タイプの一定のプールは非常に特別です。文字列クラスの一定のプールは、JDK7のJava Heapに配置されています。それを使用する方法は次のとおりです。
•文字列s = "abc"などのリテラル宣言を直接使用します。
•string.intern()を使用します。
Java Constantプールに関する上記の簡単な議論は、私があなたと共有したすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。