文字列プーリングは、それぞれの個別の文字列値の 1 つのコピーが保存されるプロセスです。それ以外の場合、文字列は不変になります。このようにして、文字列に同じデータを含めることができ、同じメモリを共有できます。このようにして、必要なメモリが大幅に削減されます。
'intern' 関数が呼び出されるとき:
2 つの文字列間の等しいかどうか、つまり文字列オブジェクトが文字列定数プール (SCP) に存在するかどうかをチェックします。
利用可能な場合は、文字列がプールから取得されて返されます。それ以外の場合は、新しい文字列オブジェクトが作成され、プールに追加されます。文字列オブジェクトへの参照も返されます。
2 つの文字列 'a' と 'b' について、a.equals(b) が true を返す場合に限り、a.intern() == b.intern( ) は true になります。 。
例を見てみましょう:
デモンストレーション
public class Demo{ public static void main(String[] args){ String s1 = new String("Its"); String s2 = s1.concat("sample"); String s3 = s2.intern(); System.out.println("Checking equality of object 2 and 3 :"); System.out.println(s2 == s3); String s4 = "Its a sample"; System.out.println("Checking equality of object 3 and 4 :"); System.out.println(s3 == s4); } }
Checking equality of object 2 and 3 : true Checking equality of object 3 and 4 : false
という名前のファイルDemo クラスには main 関数が含まれています。ここでは String オブジェクトの 3 つのインスタンスが定義されています。2 番目の文字列は、異なる値を持つ最初の文字列を連結したものです。 3 番目の文字列は、2 番目の文字列の「 intern 」関数を呼び出しています。これらの文字列は「==」演算子を使用して比較され、結果がコンソールに表示されます。
以上がJava では、文字列の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。