Java Language
Tipi di dati di riferimento
Ricerca…
Istanziare un tipo di riferimento
Object obj = new Object(); // Note the 'new' keyword
Dove:
-
Object
è un tipo di riferimento. -
obj
è la variabile in cui memorizzare il nuovo riferimento. -
Object()
è la chiamata a un costruttore diObject
.
Che succede:
- Lo spazio in memoria è allocato per l'oggetto.
- Il costruttore
Object()
viene chiamato per inizializzare quello spazio di memoria. - L'indirizzo di memoria è memorizzato in
obj
, in modo che faccia riferimento all'oggetto appena creato.
Questo è diverso dai primitivi:
int i = 10;
Dove il valore effettivo 10
è memorizzato in i
.
dereferenziazione
Il dereferenziamento avviene con .
operatore:
Object obj = new Object();
String text = obj.toString(); // 'obj' is dereferenced.
Il dereferenziamento segue l'indirizzo di memoria memorizzato in un riferimento, nel luogo in memoria in cui risiede l'oggetto reale. Quando un oggetto è stato trovato, viene chiamato il metodo richiesto ( toString
in questo caso).
Quando un riferimento ha il valore null
, la dereferenziazione risulta in una NullPointerException :
Object obj = null;
obj.toString(); // Throws a NullpointerException when this statement is executed.
null
indica l'assenza di un valore, ovvero il seguente indirizzo di memoria non conduce da nessuna parte. Quindi non esiste alcun oggetto su cui possa essere chiamato il metodo richiesto.
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow