La différence entre l'affectation directe de chaîne et la nouvelle chaîne ()

Affectation directe

Il peut créer ou non un objet. Si la chaîne "aaa" n'existe pas dans le pool de chaînes java, un objet String ("aaa") sera créé dans le pool de chaînes java.

Puis str1 pointe vers cette adresse mémoire. Quel que soit le nombre d'objets chaîne avec la valeur "aaa" créés de cette manière, une seule adresse mémoire est toujours allouée et les autres sont des copies de String.

Appelée "chaîne résidente" en Java, toutes les constantes chaîne résideront automatiquement après la compilation.

nouvelle chaîne ()

Créez au moins un ou deux objets. Étant donné que le nouveau mot clé est utilisé, un objet String de str11 sera créé dans le tas et sa valeur est "aaa".

En même temps, si la chaîne n'existe pas dans le pool de chaînes java, l'objet String "aaa" sera créé dans le pool java.

Code de test:

public static void main(String[] args) {
    
          
        String str1 = "aaa";
        String str2 = "aaa";
        System.out.println(str1 == str2);

        String str11 = new String("aaa");
        String str22 = new String("aaa");
        System.out.println(str11 == str22);
}

résultat:

true
false

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44371237/article/details/114665782
conseillé
Classement