0
文字列s1 = new String( "string")は、Stringプール内にjava.oneとヒープ内に2つのオブジェクトを作成します。今の場合、私はこれの後に別の文を書くと、s2 = "string"のようになります。 Stringプール内に別のオブジェクトを作成するか、前のオブジェクトの参照を返しますか?java文字列プールエントリとヒープエントリメカニズム
文字列s1 = new String( "string")は、Stringプール内にjava.oneとヒープ内に2つのオブジェクトを作成します。今の場合、私はこれの後に別の文を書くと、s2 = "string"のようになります。 Stringプール内に別のオブジェクトを作成するか、前のオブジェクトの参照を返しますか?java文字列プールエントリとヒープエントリメカニズム
String s2 = "string";
は、文字列プールからオブジェクトを返します。
String s1 = new String("s");
String s2 = "s"; // from pool
String s3 = "s"; // from pool
System.out.println(s1 == s2); // false
System.out.println(s3 == s2); // true
新しいString( "string")を呼び出して作成されたオブジェクトですか? –
"string" - 文字列プールに入れられる最初のオブジェクトです。新しいString( "string") - 2番目のオブジェクトです(文字列プールからではありません)。 s2はstring poolのオブジェクトに割り当てられます。 –