Java入門・初心者質問スレ [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0780デフォルトの名無しさん
2016/10/10(月) 16:51:30.34ID:d7lWr1RBString str2 = str1+"c";
System.out.println("abc" == str2);
これがfalseになるのはなぜでしょうか?
1行目 = コンスタントプールに"ab"作成
2行目 = プールに"c"作成して、それを取り出してstr1とあわせてプールに"abc"作成
3行目 = "abc"はstr2としてプールに存在してるので、それと比較して true になるはずだったんですが。
+ した時点で StringBuilderでも呼ばれてstr2はヒープに配置されてるのかとも思ったんですが、
String str2 = "a"+"b"+"c";
System.out.println(str2 == "abc");
だと true になります・・・
■ このスレッドは過去ログ倉庫に格納されています