mccae
Senfdazugeber
Huhu,
Ich hab grad dieses "Head First: Java" von Sierra und Bates ausgegraben (Das für Dummies )
Zitat:
Wie darf ich das Interpretieren xD?
Ich hab grad dieses "Head First: Java" von Sierra und Bates ausgegraben (Das für Dummies )
Zitat:
Wenn ihr Java-Programm größer wird, ist es unausweichlich, dass Sie massenhaft String-Objekte haben. Aus Sicherheitsgründen und um Speicherplatz zu sparen, sind Strings in Java unveränderbar.
Das bedeutet, dass folgender Code:
Java:String s = "0"; for (int x = 1; x<10;x++){ s = s + x; }
eigentlich bewirkt, dass Sie 10 String-Objekte (mit den Werten 0, 01, 012 bis 0123456789) erzeugen. Am Ende verweist s auf den String mit dem Wert "0123456789". Aber zu diesem Zeitpunkt gibt es 10 Strings!
Jedes Mal wenn sie einen neuen String machen, steckt die JVM ihn in einen besonderen Speicherbereich, der als String-Pool bezeichnet wird (klingt erfrischend, oder?).
Wenn es im String-Pool bereits einen String mit dem gleichen Wert gibt, erzeugt die JVM keinen zweiten String mit diesem Wert, sondern lässt ihre Referenzvariable einfach auf den vorhandenen Eintrag verweisen.
.
.
.
Die andere Sache mit dem String-Pool ist, dass der Garbage Collector nicht dort hingeht. In unserem Beispiel würden die ersten neun Strings die in unserer for-Schleife erzeugt wurden, für immer nutzlos herumsitzen und Speicherplatz verschwenden, es sei denn, Sie machen später zufälligerweise einen String mit einem gleichen Wert ("01234" beispielsweise).
Wie darf ich das Interpretieren xD?