Sök…


Instantiera en referenstyp

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

Var:

  • Object är en referenstyp.
  • obj är variabeln för att lagra den nya referensen.
  • Object() är uppmaningen till en konstruktör av Object .

Vad händer:

  • Utrymme i minnet tilldelas för objektet.
  • Konstruktörsobjektet Object() kallas för att initialisera det minnesutrymmet.
  • obj lagras i obj , så att den refererar till det nyskapade objektet.

Detta skiljer sig från primitiven:

int i = 10;

Där det verkliga värdet 10 lagras i i .

dereferencing

Dereferencing sker med . operatör:

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

Dereferencing följer minnesadressen lagrad i en referens, till den plats i minnet där det faktiska objektet finns. När ett objekt har hittats kallas den begärda metoden ( toString i detta fall).


När en referens har värdet null resulterar dereferencing i en NullPointerException :

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

null indikerar frånvaron av ett värde, dvs att följa minnesadressen leder ingenstans. Så det finns inget objekt på vilken den begärda metoden kan kallas.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow