Klicken Sie Zeilen an, die mit + markiert sind. Dort ist Hilfeinformation hinterlegt.
Hier wird Speicher für drei Variablen auf dem Stack und für drei Objekte im Heap reserviert.
In a ist gespeichert, wo das Objekt des Literals "Hallo" im Heap liegt.
In b ist gespeichert, wo die neu erzeugt Kopie des Literals liegt.
In c ist gespeichert, wo das neu erzeugte Objekt mit dem Inhalt "HalloHallo" liegt.
Der Operator + bedeutet bei Strings die Konkatenation, also das Aneinanderhängen.
Das Vergleichsergebnis ist true, weil in a der Ort des Literals gespeichert ist.
Das Vergleichsergebnis ist false, weil in b der Ort einer Kopie des Literals gespeichert ist.
Das Vergleichsergebnis ist false, weil in a der Ort des Literals und in b der Ort einer Kopie gespeichert ist.
b zeigt auf eine Kopie des Literals "Hallo". Mit .intern() erhält man den Ort des zugehörigen Originals. Deshalb liefert der Vergleich true.
Das Vergleichsergebnis ist true, weil a und b zwar verschiedene Orte enthalten, also auf verschiedene Objekte zeigen, in den beiden Objekten aber die gleiche Zeichenfolge enthalten ist.
Hier wird das gleiche wie in Zeile 27 mit compareTo statt equals ausgedrückt.
Das Vergleichsergebnis ist true, weil "Hallo" kleiner als "HalloHallo" ist.