Maison > Java > javaDidacticiel > Quand devriez-vous utiliser `String#intern()` en Java ?

Quand devriez-vous utiliser `String#intern()` en Java ?

Mary-Kate Olsen
Libérer: 2024-12-26 06:06:14
original
916 Les gens l'ont consulté

When Should You Use `String#intern()` in Java?

Quand utiliser String#intern() sur les littéraux de chaîne

String#intern() renvoie la chaîne existante du pool de chaînes si elle est présente ou l'ajoute et renvoie la référence ajoutée. Bien que les littéraux de chaîne soient automatiquement internés, il peut toujours être nécessaire d'invoquer intern() manuellement dans certains scénarios.

Internement automatique des littéraux de chaîne

Dans l'exemple de code fourni :

String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = "Rakesh".intern();
Copier après la connexion

S1 et s3 représentent tous deux la même chaîne, car l'interning est implicitement appliqué à String littéraux en Java. C'est pourquoi les deux lignes, s1 == s2 et s1 == s3, sont évaluées à true.

Cas d'utilisation pour intern()

L'utilisation d'intern() est pertinente lorsqu'il s'agit de chaînes qui ne sont pas des chaînes littérales. Par exemple :

String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = new String("Rakesh");
String s4 = new String("Rakesh").intern();
Copier après la connexion

Dans cet exemple, s1, s2 et s4 représentent la même chaîne dans le pool de constantes en raison de l'internement automatique ou de l'invocation explicite de intern(). Cependant, s3 fait référence à une nouvelle instance de String qui ne se trouve pas dans le pool de constantes.

En appelant explicitement intern() sur s4, il vérifie effectivement si "Rakesh" existe déjà dans le pool de String. Sinon, il l'ajoute et renvoie la référence de la chaîne ajoutée. Cela optimise l'utilisation de String en réduisant les objets String en double en mémoire et en favorisant les comparaisons d'égalité de chaînes.

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