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

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