Beide s = new String();s = "";
Ausdrücke geben ein String-Objekt, aber es gibt einen klaren Unterschied zwischen den beiden. s=new String()
erstellt ein neues Objekt im Heap-Speicher. Wenn wir ein Objekt mit dem String-Literal s = "";
erstellen, kann es ein vorhandenes Objekt aus dem String-Pool (einen Cache von String-Objekten) zurückgeben, falls es bereits existiert.
Beispiel wird es klar machen:
String a= "banana";
String b= "banana";
Hier a und b auf das gleiche Objekt beziehen und daher ist a==b
wahr
String a =new String("banana")
String b= new String("banana")
Hier a und b auf zwei verschiedene Objekte verweisen und daher ist a==b
falsch
https://stackoverflow.com/questions/2486191/what-is-the-java-string-pool-and-how-is-s-different-from-new-strings –
Ihre Frage ist unklar .. 's = new String();' kompiliert nicht. Was versuchst du genau zu machen? – TheLostMind
U wot? Es tut in Java 7. –