Hier ist mein Code und ich bin jetzt ziemlich verwirrt über String-Pool und Heap-Speicher von diesem Ausgang.String Concat mit derselben Referenz?
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");
}
}
Nun, ich bin die Schaffung String str
und wird in String-Pool gespeichert werden (korrigiert mich wenn ich falsch bin immer!). Jetzt nach concat str1
mit Zeichenfolge "abcd"
haben beide den gleichen Wert. Also, ich denke, str
und str1 sollte die gleiche Referenz in String-Pool und So, 2. if
Anweisung sollte true
drucken, aber es druckt false
.
Also, meine Frage, warum str und str1 nicht die gleiche Referenz bekommen?
Schauen Sie hier: http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java und http://stackoverflow.com/questions/19965895/passing-value-of- A-String-in-einem-Array-zu-einem-Methode-in-Java/19966154 # 19966154 – dimas
verwirrt !!! wie diese einfach doppelte Frage bekam 5 ** UPVOTE **! – muzahidbechara