String str1="JAVA";
String str2="JAVA";
String str3=new String("JAVA");
String str4=new String("JAVA").intern();
2 つのオブジェクトが作成されます。メソッドが同じ値を持つ文字列の文字列プールにチェックインするため、 new 演算子を使用して同じオブジェクトをポイントし、同じオブジェクトをポイントするため、文字列リテラルプールの概念とポイントのために同じオブジェクトstr1
を参照します。str2
str3
str4
str1
str2
intern()
str1=str2=str3=str4=null;
1 つのオブジェクトが GC の対象になります。それが によって作成されたオブジェクトですString str3=new String("JAVA")
。最初の String オブジェクトは、文字列リテラル プールに格納された参照を介して常にアクセスできます。
私の説明は正しいですか?