以下のようなことを試しました:
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ですか?