JavaRush /Blog Java /Random-FR /Pause café #173. Quelle est la différence entre HashMap e...

Pause café #173. Quelle est la différence entre HashMap et Hashtable. Comment trouver et corriger NullPointerException en Java

Publié dans le groupe Random-FR

Quelle est la différence entre HashMap et Hashtable

Source : Medium Aujourd'hui, vous apprendrez la réponse à l'une des questions d'entretien Java les plus populaires : quelle est la différence entre HashMap et Hashtable. Pause café #173.  Quelle est la différence entre HashMap et Hashtable.  Comment trouver et corriger NullPointerException en Java - 1Une table de hachage est une structure de données permettant de stocker des paires de clés et leurs valeurs, basée sur le hachage et une implémentation de l'interface Map. HashMap est également une structure de données permettant de stocker des clés et des valeurs, basée sur le hachage et une implémentation de l'interface Map. HashMap vous permet d'obtenir rapidement une valeur par clé. Par exemple, le nom et le numéro de téléphone de l'utilisateur. Il existe des différences significatives entre HashMap et Hashtable en Java . Ceux-ci incluent la sécurité des threads, la synchronisation et la cohérence de l’implémentation de Map. Il est important de prendre en compte ces aspects lors du choix du type de structure de données à utiliser dans votre programme Java : Une HashMap est une carte non synchronisée et non ordonnée de paires clé-valeur. Il autorise les valeurs nulles et utilise un code de hachage comme contrôle d'égalité, tandis que Hashtable est une carte ordonnée synchronisée de paires clé-valeur. Il n'autorise pas les valeurs nulles et utilise la méthode equals() pour vérifier l'égalité. Un HashMap a une capacité par défaut de 16 et un Hashtable a une capacité initiale par défaut de 11. Les valeurs d'un objet HashMap sont itérées à l'aide d'un itérateur, et Hashtable est la seule classe autre qu'un vecteur qui utilise un énumérateur pour parcourir les valeurs d'un objet Hashtable. N'oubliez pas que les différences entre HashMap et Hashtable sont l'une des questions les plus populaires dans les entretiens Java.

Comment trouver et corriger NullPointerException en Java

Source : Theflashreads Après avoir lu cet article, vous serez mieux en mesure de trouver et de corriger une erreur courante dans le code Java : NullPointerException. Pause café #173.  Quelle est la différence entre HashMap et Hashtable.  Comment trouver et corriger NullPointerException en Java - 2

Qu'est-ce qu'une NullPointerException ?

java.lang.NullPointerException est une exception d'exécution en Java. Cela se produit lorsqu'une tentative est effectuée pour accéder à une variable qui ne pointe vers ou ne fait référence à aucun objet, c'est-à-dire qu'elle est nulle. NullPointerException étant une exception d’exécution, il n’est pas nécessaire de l’intercepter et de la gérer explicitement dans le code de l’application.

Dans quelles circonstances une NullPointerException se produit-elle ?

NullPointerException se produit lorsqu'une tentative est effectuée pour accéder à un objet non initialisé. Comme déjà mentionné, cela se produit lorsque la référence d'objet ne va nulle part et a une valeur nulle. Voici quelques-uns des scénarios d’exception NullPointerException les plus courants :
  • Accédez aux propriétés d’un objet nul.
  • Lancer null à partir d'une méthode qui lève une exception.
  • Configuration incorrecte pour les frameworks d'injection de dépendances, par exemple : (Spring).
  • Passer des paramètres nuls à une méthode.
  • Appel de méthodes sur un objet nul.
  • Utilisation synchronisée sur un objet nul.
  • Accédez à l'élément d'index (par exemple, dans un tableau) d'un objet nul.

Exemple NullPointerException

Dans cet exemple, nous essayons d'appeler la méthode printLength , qui prend une chaîne comme paramètre et imprime sa longueur. Si la valeur de la chaîne passée en paramètre est nulle, une java.lang.NullPointerException sera levée .
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)

Comment éviter de lancer NullPointerException

NullPointerException peut être évitée en utilisant les vérifications et méthodes préventives suivantes :
  • Assurez-vous qu'un objet est correctement initialisé en ajoutant une vérification nulle avant d'accéder à ses méthodes ou propriétés.

  • Utilisez Apache Commons StringUtils pour les opérations sur les chaînes : par exemple, StringUtils.isNotEmpty() pour vérifier si une chaîne est vide avant de l'utiliser davantage.

    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);
    
        }
    
    }
  • Utilisez des primitives plutôt que des objets autant que possible, car ils ne peuvent pas avoir de références nulles. Par exemple, utilisez int au lieu de Integer et boolean au lieu de Boolean .

  • Assurez-vous de vérifier votre code. Cela réduira la probabilité qu'une NullPointerException soit levée .

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