Buscar..


Creando un tipo de referencia

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

Dónde:

  • Object es un tipo de referencia.
  • obj es la variable en la que se almacena la nueva referencia.
  • Object() es la llamada a un constructor de Object .

Lo que pasa:

  • Se asigna espacio en la memoria para el objeto.
  • El constructor Object() se llama para inicializar ese espacio de memoria.
  • La dirección de la memoria se almacena en obj , de modo que hace referencia al objeto recién creado.

Esto es diferente de los primitivos:

int i = 10;

Donde el valor real 10 se almacena en i .

Desreferenciación

La desreferenciación ocurre con el . operador:

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

La desreferenciación sigue la dirección de memoria almacenada en una referencia, al lugar en la memoria donde reside el objeto real. Cuando se ha encontrado un objeto, se llama al método solicitado ( toString en este caso).


Cuando una referencia tiene el valor null , la desreferenciación da como resultado una excepción NullPointerException :

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

null indica la ausencia de un valor, es decir, siguiendo las indicaciones de la dirección de memoria a ninguna parte. Así que no hay ningún objeto sobre el cual se pueda llamar al método solicitado.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow