すでに述べたものに加えて、文字列リテラル [すなわち、文字列のよう"abcd"
ではないようにnew String("abcd")
]抑留されているJavaで-この手段は、あなたが「ABCD」を参照してくださいたびに、あなたは、単一の参照を取得することをString
むしろ新しいものよりも、インスタンスを毎回。したがって、次のようになります。
String a = "abcd";
String b = "abcd";
a == b; //True
しかし、あなたが持っていた場合
String a = new String("abcd");
String b = new String("abcd");
その後、
a == b; // False
(そして、誰かが思い出させる必要がある場合は、常に.equals()
ストリングを比較するために使用してください; ==
物理的等価性のテスト)。
文字列リテラルのインターンは、2回以上使用されることが多いため、優れています。たとえば、(考案された)コードを考えてみます。
for (int i = 0; i < 10; i++) {
System.out.println("Next iteration");
}
文字列のインターンがなかった場合、「次の反復」は10回インスタンス化する必要がありますが、現在は1回だけインスタンス化されます。