Java Language
Referenzdatentypen
Suche…
Einen Referenztyp instanziieren
Object obj = new Object(); // Note the 'new' keyword
Woher:
-
Object
ist ein Referenztyp. -
obj
ist die Variable, in der die neue Referenz gespeichert werden soll. -
Object()
ist der Aufruf eines Konstruktors vonObject
.
Was geschieht:
- Speicherplatz wird für das Objekt reserviert.
- Der Konstruktor
Object()
wird aufgerufen, um diesen Speicherplatz zu initialisieren. - Die Speicheradresse wird in
obj
gespeichert, so dass sie auf das neu erstellte Objekt verweist .
Dies unterscheidet sich von Primitiven:
int i = 10;
Wo der Istwert 10
in i
gespeichert ist.
Dereferenzierung
Dereferenzierung geschieht mit dem .
Operator:
Object obj = new Object();
String text = obj.toString(); // 'obj' is dereferenced.
Die Dereferenzierung folgt der in einer Referenz gespeicherten Speicheradresse an den Ort im Speicher, an dem sich das tatsächliche Objekt befindet. Wenn ein Objekt gefunden wurde, wird die angeforderte Methode aufgerufen (in diesem Fall toString
).
Wenn eine Referenz den Wert null
, führt die Dereferenzierung zu einer NullPointerException :
Object obj = null;
obj.toString(); // Throws a NullpointerException when this statement is executed.
null
bedeutet das Fehlen eines Wertes, dh die Nachverfolgung der Speicheradresse führt zu nichts. Es gibt also kein Objekt, auf dem die angeforderte Methode aufgerufen werden kann.
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow