ここに私のコードがあります。私は現在、文字列プールと ヒープストレージについてはかなり混乱しています。同じ参照の文字列連結?
public class String1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "abcd";
String str1 = "" ;
str1=str1+"abcd";
if(str.equals(str1))
System.out.println("True");
else
System.out.println("False");
if(str == str1)
System.out.println("True");
else
System.out.println("False");
}
}
今、私は文字列str
を作成していますし、(私が間違って取得していますなら、私を修正してください!)文字列プールに格納されます。 concatの後にの文字列"abcd"
が両方とも同じ値です。 だから、私はstr
とstr1は文字列プールで同じ参照を持っていると思うので、文はtrue
を印刷すべきですが、false
を印刷します。
なぜ、strとstr1が同じ参照を取得していないのですか?
ここをご覧ください:http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java and http://stackoverflow.com/questions/19965895/passing-value-of- a-string-in-a-method-in-java/19966154#19966154 – dimas
混乱しています!どのようにこれは単純に重複した質問5 ** UPVOTE **を得た! – muzahidbechara