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 von Object .

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