Pool de constantes de chaînes : un examen approfondi
Les littéraux de chaînes en Java sont regroupés pour optimiser l'utilisation de la mémoire et améliorer les performances. Cela signifie que lorsqu'un littéral String est rencontré, le compilateur vérifie dans le pool de constantes String un objet String existant avec la même valeur. Si elle est trouvée, la référence est dirigée vers l'objet existant, évitant ainsi la création d'un nouvel objet.
Cependant, une confusion survient lors de l'utilisation de l'opérateur "new" pour créer un nouvel objet String, car cela semble contredire la règle. de stage. Pour clarifier cela, examinons les déclarations suivantes :
Comme prévu, la valeur de « un » et « deux » est « test », mais la comparaison « ==" renvoie false car ils font référence à des objets String différents. En effet, l'utilisation de « new » force la création d'un nouvel objet String pour « one », même si le « test » littéral String existe déjà dans le pool.
String one = new String("test"); String two = "test"; System.out.println(one.equals(two)); // true System.out.println(one == two); // false
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!