文字列を追加する状況があります。そして、私は混乱しています..
public static void foo() {
String s = "str4";
String s1 = "str" + s.length();
System.out.println("(s==s1) = " + (s1 == s));
}
と
public static void bar() {
String s = "str4";
String s1 = "str" + "4";
System.out.println("(s==s1) = " + (s1 == s));
}
最初のケースでは「false」を返しますが、2番目のケースでは「true」を返します。両方のケースで「str4」オブジェクトがヒープ上に作成されていることを理解しています。したがって、どちらの場合も true を返す必要があります。しかし、そうではありません。なぜそうなのか誰か助けてください。? ありがとう。!