Puntos interesantes sobre null en Java

Basico

No existe un programador que no tenga problemas con null. Todos los lenguajes de programación lo incluyen. Mira estos puntos interesantes de null en Java!

En Java, null está asociado a java.lang.NullPointerException. Como es una clase en el paquete java.lang, se invoca cuando intentamos realizar algunas operaciones con o sin null y, a veces, ni siquiera sabemos dónde ha sucedido.

A continuación se detallan algunos puntos importantes sobre null en Java que todo programador de Java debe saber:

1. null es Case sensitive

null es literal en Java y porque las palabras clave distinguen entre mayúsculas y minúsculas en java, no podemos escribir NULL o 0.

public class Test
{
 public static void main (String[] args) throws java.lang.Exception
 {
 // error en tiempo de compilación: no se puede encontrar el símbolo 'NULL'
 Object obj = NULL; 
 
 //lo siguiente se ejecuta con éxito
 Object obj1 = null; 
 }
}

Salida:

error: cannot find symbol
 can't find symbol 'NULL'
                      ^
 variable NULL
 class Test
1 error

2. Valor de variable de referencia

Cualquier variable de referencia en Java tiene un valor predeterminado nulo.

public class Test
{
    private static Object obj; 
    public static void main(String args[])
    {
        // imprimira nulo;
        System.out.println("El valor del objeto obj es : " + obj);
    } 
}

Salida:

El valor del objeto obj es : null

3. Tipo de null

A diferencia de la idea errónea común, null no es un objeto ni un tipo. Es solo un valor especial, que se puede asignar a cualquier tipo de referencia y se puede castear null a cualquier tipo.

Ejemplos:

// null se puede asignar a String
  String str = null; 
 
 // tambien puedes asignar null a Integer
 Integer itr = null; 
 
 // null también se puede asignar a Double
 Double dbl = null; 
     
 //null se puede castear a String
 String myStr = (String) null; 
 
 // también puede ser casteado a Integer
 Integer myItr = (Integer) null; 
 
 // si es posible, no hay error
 Double myDbl = (Double) null;

4. Autoboxing y unboxing

Durante las operaciones de auto-boxing y unboxing, el compilador simplemente arroja un error de excepción Nullpointer si se asigna un valor nulo al tipo de datos en recuadro primitivo.

public class Test
{
    public static void main (String[] args) throws java.lang.Exception
    {
            //Un número entero puede ser nulo, así que esto está bien
            Integer i = null;
             
            //Unboxing null a integer lanza NullpointerException
            int a = i;
    }
}

Salida:

Exception in thread "main" java.lang.NullPointerException
 at Test.main

5. Operador instanceof

El operador instanceof de Java se usa para probar si el objeto es una instancia del tipo especificado (clase, subclase o interfaz). En tiempo de ejecución, el resultado del operador instanceof es verdadero si el valor de la expresión no es nulo.

Esta es una propiedad importante de la operación instanceof, que lo hace útil para las verificaciones de conversión de tipo.

Ejemplo:

public class Test
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Integer i = null;
        Integer j = 10;
             
        //imprime false
        System.out.println(i instanceof Integer);
         
        //Compila con exito
        System.out.println(j instanceof Integer);
    }
}

Salida:

false
true

6. Métodos estáticos vs no estáticos

No podemos llamar a un método no estático en una variable de referencia con valor nulo, arrojará NullPointerException, pero podemos llamar al método estático con variables de referencia con valores nulos.

Como los métodos estáticos están vinculados mediante el enlace estático, no lanzarán NullPointerException.

public class Test
{             
    public static void main(String args[])
    {
        Test obj= null;
        obj.staticMethod();
        obj.nonStaticMethod();                             
    }
     
    private static void staticMethod()
    {
        //Puede ser llamado por referencia nula
        System.out.println("metodo estatico, puede ser llamado por referencia nula");
         
    }
         
    private void nonStaticMethod()
    {
        //Can not be called by null reference
        System.out.print(" Metodo no estatico- ");
        System.out.println("no puede ser llamado por referencia nula");
         
    }
 
}

Salida:

Exception in thread "main" java.lang.NullPointerException
 at Test.main

metodo estatico, puede ser llamado por referencia nula

7. == y !=

Esto puede ser útil en la comprobación de null con objetos en Java.

public class Test
{             
    public static void main(String args[])
    {
     
    //return true;
    System.out.println(null==null);
     
    //return false;
    System.out.println(null!=null);
         
    }
}

Salida:

true
false
Null en Java
  • 10/10
    Puntos Interesantes - 10/10
10/10

Resumen

Se detallan algunos puntos importantes sobre null en Java que todo programador de Java debe saber ¿o ya lo sabías?

Sobre el Autor:

Hey hola! Yo soy Alex Walton y tengo el placer de compartir conocimientos hacía ti sobre el tema de Programación en Java, desde cero, Online y Gratis.

Deja una Respuesta

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.