Zoeken…


Een referentietype instantiëren

Object obj = new Object(); // Note the 'new' keyword

Waar:

  • Object is een referentietype.
  • obj is de variabele waarin de nieuwe referentie moet worden opgeslagen.
  • Object() is de aanroep van een constructor van Object .

Wat gebeurt er:

  • Ruimte in het geheugen wordt toegewezen aan het object.
  • De constructor Object() wordt aangeroepen om die geheugenruimte te initialiseren.
  • Het geheugenadres wordt opgeslagen in obj , zodat het verwijst naar het nieuw gemaakte object.

Dit verschilt van primitieven:

int i = 10;

Waar de werkelijke waarde 10 is opgeslagen in i .

dereferentie

Dereferencing gebeurt met de . operator:

Object obj = new Object();
String text = obj.toString(); // 'obj' is dereferenced.

Dereferencing volgt het geheugenadres opgeslagen in een referentie, naar de plaats in het geheugen waar het werkelijke object zich bevindt. Wanneer een object is gevonden, wordt de gevraagde methode aangeroepen (in dit geval toString ).


Wanneer een verwijzing de waarde null , resulteert dereferencing in een NullPointerException :

Object obj = null;
obj.toString(); // Throws a NullpointerException when this statement is executed.

null geeft de afwezigheid van een waarde aan, dwz dat het volgen van het geheugenadres nergens leidt. Er is dus geen object waarop de gevraagde methode kan worden aangeroepen.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow