String s1 = new String("string");
String s2 = new String("string");
String s3 = "string";
String s4 = "string";
System.out.println(s1 == s2); //FALSE
System.out.println(s2.equals(s1)); //TRUE
System.out.println(s3 == s4); //TRUE
System.out.println(s3.equals(s4)); //TRUE
s1
の作成との作成の違いは何s3
ですか? 私にお知らせください
String には String オブジェクトしかないのに、なぜこの 2 つを異なる方法で扱うのでしょうか。s1 と s2 のメモリ アドレスは異なりますが、s3 と s4 のメモリ アドレスは同じです。new
演算子に基づいて機能するのはなぜですか。