7 Stimmen

String-Pool zur Erstellung zweier String-Objekte für denselben String in Java

Mögliches Duplikat:
Java-Zeichenketten und StringPool

Ich habe zwei Strings erstellt

String s1="MyString";
String s2=new String("MyString");
System.out.println(s1==s2);

Es druckt "false" . wir wissen, dass der String-Pool nicht zwei Objekte für dasselbe String-Literal erstellt.

Was geschieht dann hier? Es werden zwei verschiedene String-Objekte (Literale) im String-Pool für dasselbe String-Literal "MyString" erstellt.

Ich weiß equals() Methode gibt zurück true hier.

aber wenn wir == es sollte zwei Referenzen vergleichen und sie sollten sich auf dieselbe String-Objekt im String-Konstanten-Pool verweisen.

Warum wird nicht auf das vorhandene String-Objekt im String-Pool verwiesen, auch wenn es eine Übereinstimmung findet?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X