次のコード セグメントは、文字列をインターンします。
String str1="my";
String str2="string";
String concat1=str1+str2;
concat1.intern();
System.out.println(concat1=="mystring");
がインターンされたため、式concat1=="mystring"
が返されます。true
concat1
指定された文字列が次のスニペットに示すようにmystring
変更された場合。string
String str11="str";
String str12="ing";
String concat11=str11+str12;
concat11.intern();
System.out.println(concat11=="string");
比較式は をconcat11=="string"
返しますfalse
。によって保持されている文字列concat11
はインターンされていないようです。私はここで何を見落としていますか?
Java 7、アップデート 11 でテストしました。
編集:
コード全体:
package test;
public final class Test
{
public static void main(String... args)
{
String str11="my";
String str12="string";
String concat11=str11+str12;
concat11.intern();
System.out.println(concat11=="mystring");
String str1="str";
String str2="ing";
String concat1=str1+str2;
concat1.intern();
System.out.println(concat1=="string");
}
}