Jan 09

Schauen wir uns die Neuanlage eines Strings nochmal genauer an:

String a = new String(“abc”); // Anlage eines neuen Objektes, welches nicht im Pool ist
String b = “abc”; // Da das Objekt im Pool nicht auffindbar ist, wird nochmal ein neues Objekt (im Pool) angelegt

System.out.println(a==b);
// false, da unterschiedliche Referenzen
System.out.println(a.equals(b)); // true, da gleiche Werte


Tagged with:
Jan 07

Wie Ihr Euch bestimmt denken könnt, verbrauchen Strings aufgrund ihrer Unveränderbarkeit jede Menge Speicherplatz.

Also hat sich die JVM (naja, eher deren Entwickler) etwas ausgedacht: Für jedes Objekt, welches neu angelegt werden soll, wird überprüft, ob ein gleiches Objekt schon existiert:

String a = “abc”;
String b = “abc”;
// gleicher Inhalt, also zeigt b auf das selbe Objekt wie a

System.out.println(a==b);
// true; da beide auf das selbe Objekt referenzieren
System.out.println(a.equals(b));
// true; da Werte ebenfalls gleich sind

Soll diese Überprüfung aber nicht stattfinden, muss ein neuer String mit new angelegt werden:

String c = new String(“abc”);

System.out.println(a==c); // false, da auf unterschiedliche Objekte referenziert wird
System.out.println(a.equals(c)); // true, da Werte gleich sind

Tagged with:
preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs