以下のようなことを試しました:
String s1="test5";
String s2="test"+5;
String s3="test"+s1.length();
System.out.println("s1==s2 "+(s1==s2)+" s2==s3 "+(s2==s3)+" s1==s3 "+ (s1==s3));
出力は次のとおりです。
s1==s2
true
s2==s3
false
s1==s3
false
s2
とs1
が に等しくないのはなぜs3
ですか? に対して新しい参照が生成されるのはなぜs3
ですか?