Java Language
Tipos de datos de referencia
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 deObject
.
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