Categorías
Basics Diagram JVM/Compiler

¿Qué es exactamente nulo en Java?


Comencemos por la siguiente declaración:

String x = null;

1. ¿Qué hace exactamente esta declaración?

Recuerde qué es una variable y qué es un valor. Una metáfora común es que una variable es similar a una caja. Así como puede usar un cuadro para almacenar algo, puede usar una variable para almacenar un valor. Al declarar una variable, necesitamos establecer su tipo.

Hay dos categorías principales de tipos en Java: primitivo y de referencia. Variables declaradas de tipo primitivo almacenan valores; variables declaradas de un tipo de referencia almacenar referencias. En este caso, la instrucción de inicialización declara una variable «x». «X» almacena la referencia de cadena. Aquí es nulo.

La siguiente visualización da una mejor idea de este concepto.

Si x = «abc», se parece a lo siguiente:
variable-referencia

2. ¿Qué es exactamente nulo en la memoria?

¿Qué es exactamente nulo en la memoria? O ¿Cuál es el valor nulo en Java?

En primer lugar, null no es una instancia de objeto válida, por lo que no hay memoria asignada para él. Es simplemente un valor que indica que la referencia del objeto no se refiere actualmente a un objeto.

De Especificaciones de JVM:

La especificación de la máquina virtual Java no exige un valor concreto que codifique nulo.

Asumiría que son todos ceros de algo similar como en otros lenguajes similares a C.

3. ¿Qué es exactamente x en la memoria?

Ahora sabemos qué es nulo. Y sabemos que una variable es una ubicación de almacenamiento y un nombre simbólico asociado (un identificador) que contiene algún valor. ¿Dónde está exactamente x en la memoria?

  Ejemplos de Java Varargs

A partir del diagrama de las áreas de datos en tiempo de ejecución de JVM, sabemos que dado que cada método tiene un marco de pila privado dentro de la pila del subproceso, las variables locales se encuentran en ese marco.

Referencias:

1. Variables, operadores y expresiones
2. Variable
3. Especificaciones de JVM

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *