Question :
En Java, quelles situations justifient l'utilisation du stagiaire( ) méthode sur chaîne des littéraux ?
Réponse :
Java intègre automatiquement les littéraux de chaîne, ce qui signifie que leurs valeurs sont stockées dans le pool constant et référencées par plusieurs objets chaîne. Cependant, la méthode intern() est utile lorsque vous travaillez avec des chaînes créées à l'aide de l'opérateur new.
Explication :
Les littéraux de chaîne, tels que "Rakesh", sont automatiquement interné. Cela signifie que la référence de chaîne renvoyée par new String("Rakesh") pointera toujours vers le même objet que le littéral "Rakesh".
Cependant, les chaînes créées avec new ne sont pas internées. Le code String s4 = new String("Rakesh") crée un nouvel objet en mémoire, même si la valeur de "Rakesh" existe déjà dans le pool de constantes. Pour forcer l'internement de cette chaîne nouvellement créée, nous pouvons utiliser la méthode intern(), comme indiqué dans String s5 = new String("Rakesh").intern().
Ainsi, la méthode intern() doit être utilisé lorsque nous voulons garantir manuellement que plusieurs objets chaîne font référence au même objet dans le pool constant, même s'ils ont été créés à l'aide de nouveau.
Exemple :
Considérez le code suivant :
String s1 = "Rakesh"; String s2 = "Rakesh"; String s3 = "Rakesh".intern(); String s4 = new String("Rakesh"); String s5 = new String("Rakesh").intern(); if (s1 == s2) { System.out.println("s1 and s2 are same"); // 1. } if (s1 == s3) { System.out.println("s1 and s3 are same"); // 2. } if (s1 == s4) { System.out.println("s1 and s4 are same"); // 3. } if (s1 == s5) { System.out.println("s1 and s5 are same"); // 4. }
La sortie sera :
s1 and s2 are same s1 and s3 are same s1 and s5 are same
Les lignes 1, 2 et 4 illustrent que s1, s2, s3 et s5 font tous référence au même objet dans la piscine constante. La ligne 3 démontre que s4 est un objet différent en mémoire, bien qu'il ait la même valeur que s1.
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!