Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

JAVA: String: auf Heap oder auf Stack + konstant oder nicht ?

bitchen / 1 Antworten / Flachansicht Nickles

Hallo,
es gibt doch zwei Möglichkeiten einen String anzulegen:
- String a=new String("text");
- String b="text";


Sind diese Zuweisungen gleichbedeutend?
Es ist klar, dass a eine Referenz auf ein Objekt vom Typ String, das auf dem Heap angelegt wird, ist.
Aber was ist b? Wird bei der zweiten Zuweisung ein implizierter Befehl zum Anlegen eines neuen Objektes auf dem Heap ausgeführt, oder liegt b dann etwa auf dem Stack?


Noch ne Frage zu final bei Strings. Einerseits liest man immer, dass der Wert, also der Inhalt eines Strings konstant, d.h. unveränderlich ist, andererseits sind Strings ja auch Objekte, das heißt, dass nur die Referenz auf das Objekt nicht verändert werden kann, der Inhalt schon. In diesem Falle: Wozu ist dann noch der StringBuffer da, bei dem Zeichenketten geändert werden können?


Ich danke Euch im Vorraus für Eure Postings,
gruß,
Peter

bei Antwort benachrichtigen
Antwort Teil 1 Dreamforger