このインタビューの質問に対する一般的な回答は、コードによって 2 つのオブジェクトが作成されるというものです。しかし、私はそうは思いません。確認のためにいくつかのコードを書きました。
public class StringTest {
public static void main(String[] args) {
String s1 = "a";
String s2 = "a";
String s3 = new String("a");
System.out.println("s1: "+s1.hashCode());
System.out.println("s2: "+s2.hashCode());
System.out.println("s3: "+s3.hashCode());
}
}
出力は次のとおりです。
これは、オブジェクトが 1 つだけ作成されたということですか?
再確認: 私の質問は、次のコードによって作成されたオブジェクトの数です。
String s = new String("xyz")
StringTest
コードの代わりに。
@Don Branson に触発されて、以下のコードをデバッグしました。
public class test {
public static void main(String[] args) {
String s = new String("abc");
}
}
結果は次のとおりです。
s の ID は 84 で、"abc" の ID は 82 です。これはどういう意味ですか?