Maison > Java > javaDidacticiel > Quand devriez-vous utiliser la méthode String `intern()` de Java ?

Quand devriez-vous utiliser la méthode String `intern()` de Java ?

Barbara Streisand
Libérer: 2024-12-04 03:26:13
original
154 Les gens l'ont consulté

When Should You Use Java's String `intern()` Method?

Les littéraux de chaîne et la méthode interne

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.
}
Copier après la connexion

La sortie sera :

s1 and s2 are same
s1 and s3 are same
s1 and s5 are same
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal