Normal
Okay ich hab mir das jetzt angeschaut, hab aber noch eine Frage.Also soweit ich das verstehe werden String Literale tatächlich niemals vom GC gelöscht. Denn selbst wenn keine Variable mehr darauf referenziert, existiert die Referenz noch immer im Pool, und somit bleiben die Objekte referenziert, nur halt nicht mehr ohne weiteres ansprechbar vom Programmierer.(per String#intern() kann man sich die Referenzen scheinbar aber holen)Heisst das nun, wenn man ein Programm hat das sehr sehr viele (verschiedene) Strings erzeugt, sollte man lieber alle mit dem new-Operator erstellen, weil die Literale für immer auf dem Heap bleiben und den somit vollstopfen könnten?Oder hab ich das falsch verstanden?Thx
Okay ich hab mir das jetzt angeschaut, hab aber noch eine Frage.
Also soweit ich das verstehe werden String Literale tatächlich niemals vom GC gelöscht. Denn selbst wenn keine Variable mehr darauf referenziert, existiert die Referenz noch immer im Pool, und somit bleiben die Objekte referenziert, nur halt nicht mehr ohne weiteres ansprechbar vom Programmierer.
(per String#intern() kann man sich die Referenzen scheinbar aber holen)
Heisst das nun, wenn man ein Programm hat das sehr sehr viele (verschiedene) Strings erzeugt, sollte man lieber alle mit dem new-Operator erstellen, weil die Literale für immer auf dem Heap bleiben und den somit vollstopfen könnten?
Oder hab ich das falsch verstanden?
Thx