JavaRush /Blog Java /Random-ES /Pausa para el café #173. ¿Cuál es la diferencia entre Has...

Pausa para el café #173. ¿Cuál es la diferencia entre HashMap y Hashtable? Cómo encontrar y corregir NullPointerException en Java

Publicado en el grupo Random-ES

¿Cuál es la diferencia entre HashMap y Hashtable?

Fuente: Medio Hoy aprenderá la respuesta a una de las preguntas de entrevistas sobre Java más populares: ¿cuál es la diferencia entre HashMap y Hashtable? Pausa para el café #173.  ¿Cuál es la diferencia entre HashMap y Hashtable?  Cómo encontrar y corregir NullPointerException en Java - 1Una Hashtable es una estructura de datos para almacenar pares de claves y sus valores, basada en hash y una implementación de la interfaz Map. HashMap también es una estructura de datos para almacenar claves y valores, basada en hash y una implementación de la interfaz Map. HashMap le permite obtener rápidamente un valor por clave. Por ejemplo, el nombre y el número de teléfono del usuario. Existen diferencias significativas entre HashMap y Hashtable en Java . Estos incluyen seguridad de subprocesos, sincronización y coherencia en la implementación de mapas. Es importante considerar estos aspectos al elegir el tipo de estructura de datos que usará en su programa Java: Un HashMap es un mapa desordenado y no sincronizado de pares clave-valor. Permite valores nulos y utiliza un código hash como verificación de igualdad, mientras que Hashtable es un mapa ordenado sincronizado de pares clave - valor. No permite valores nulos y utiliza el método igual () para verificar la igualdad. Un HashMap tiene una capacidad predeterminada de 16 y un Hashtable tiene una capacidad inicial predeterminada de 11. Los valores de un objeto HashMap se iteran usando un iterador, y Hashtable es la única clase además de un vector que usa un enumerador para iterar sobre los valores de un objeto Hashtable. Recuerde que las diferencias entre HashMap y Hashtable es una de las preguntas más populares en las entrevistas sobre Java.

Cómo encontrar y corregir NullPointerException en Java

Fuente: Theflashreads Después de leer este artículo, podrá encontrar y corregir mejor un error común en el código Java: NullPointerException. Pausa para el café #173.  ¿Cuál es la diferencia entre HashMap y Hashtable?  Cómo encontrar y corregir NullPointerException en Java - 2

¿Qué es una excepción NullPointerException?

java.lang.NullPointerException es una excepción de tiempo de ejecución en Java. Ocurre cuando se intenta acceder a una variable que no apunta ni hace referencia a ningún objeto, es decir, es nula. Dado que NullPointerException es una excepción en tiempo de ejecución, no es necesario detectarla ni manejarla explícitamente en el código de la aplicación.

¿En qué circunstancias se produce una NullPointerException?

NullPointerException ocurre cuando se intenta acceder a un objeto no inicializado. Como ya se mencionó, esto sucede cuando la referencia del objeto no va a ninguna parte y tiene un valor nulo. Estos son algunos de los escenarios de excepción NullPointerException más comunes :
  • Accede a las propiedades de un objeto nulo.
  • Lanzar nulo desde un método que arroja una excepción.
  • Configuración incorrecta para marcos de inyección de dependencia, por ejemplo: (Spring).
  • Pasar parámetros nulos a un método.
  • Llamar a métodos en un objeto nulo.
  • Usando sincronizado en un objeto nulo.
  • Acceda al elemento de índice (por ejemplo, en una matriz) de un objeto nulo.

Ejemplo de excepción de puntero nulo

En este ejemplo, intentamos llamar al método printLength , que toma una cadena como parámetro e imprime su longitud. Si el valor de la cadena que se pasa como parámetro es nulo, se generará una excepción java.lang.NullPointerException .
public class NullPointerExceptionExample {

    private static void printLength(String str) {

        System.out.println(str.length());

    }



    public static void main(String args[]) {

        String nullString = null;

        printLength(nullString);

    }

}





Exception in thread "main" java.lang.NullPointerException

    at NullPointerExceptionExample.printLength(NullPointerExceptionExample.java:3)

    at NullPointerExceptionExample.main(NullPointerExceptionExample.java:8)

Cómo evitar lanzar NullPointerException

NullPointerException se puede evitar mediante el uso de las siguientes comprobaciones y métodos preventivos:
  • Asegúrese de que un objeto se inicialice correctamente agregando una verificación nula antes de acceder a sus métodos o propiedades.

  • Utilice Apache Commons StringUtils para operaciones de cadenas: por ejemplo, StringUtils.isNotEmpty() para comprobar si una cadena está vacía antes de seguir utilizándola.

    import org.apache.commons.lang3.StringUtils;
    
    
    
    public class NullPointerExceptionExample {
    
        private static void printLength(String str) {
    
            if (StringUtils.isNotEmpty(str)) {
    
                System.out.println(str.length());
    
            } else {
    
                System.out.println("This time there is no NullPointerException");
    
            }
    
        }
    
    
    
        public static void main(String args[]) {
    
            String nullString = null;
    
            printLength(nullString);
    
        }
    
    }
  • Utilice primitivas en lugar de objetos siempre que sea posible, ya que no pueden tener referencias nulas. Por ejemplo, utilice int en lugar de Integer y boolean en lugar de Boolean .

  • Asegúrate de verificar tu código. Esto reducirá la probabilidad de que se genere una excepción NullPointerException .

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION