Java Language
Typen referentiegegevens
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 vanObject
.
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