Utilisez la fonction String.intern() de Java pour ajouter la chaîne au pool de constantes de chaîne
Dans le traitement des chaînes Java, vous rencontrez souvent des problèmes de comparaison de chaînes et de concaténation de chaînes, en particulier lors du traitement d'un grand nombre de chaînes. Afin d'améliorer les performances du programme et d'économiser de l'espace mémoire, Java fournit une méthode pour ajouter une chaîne au pool de constantes de chaîne, c'est-à-dire en utilisant la fonction String.intern().
Le pool de constantes de chaîne en Java est une zone de mémoire spéciale utilisée pour stocker les objets chaîne fréquemment utilisés en vue de leur réutilisation. En Java, nous utilisons généralement des guillemets doubles pour créer directement un objet chaîne, par exemple : "Bonjour". Les objets chaîne créés de cette manière sont automatiquement ajoutés au pool de constantes chaîne. Vous pouvez utiliser la fonction String.intern() pour ajouter manuellement un objet chaîne au pool de constantes chaîne.
L'exemple de code suivant illustre comment utiliser la fonction String.intern() pour ajouter une chaîne au pool de constantes de chaîne.
public class StringInternExample { public static void main(String[] args) { String str1 = "Hello"; String str2 = new String("Hello"); String str3 = new String("Hello").intern(); String str4 = new StringBuilder("Hel").append("lo").toString(); String str5 = new StringBuilder("Ja").append("va").toString().intern(); System.out.println("str1 == str2: " + (str1 == str2)); // false System.out.println("str1 == str3: " + (str1 == str3)); // true System.out.println("str1 == str4: " + (str1 == str4)); // false System.out.println("str1 == str5: " + (str1 == str5)); // true } }
Dans l'exemple ci-dessus, nous avons créé 5 objets chaîne. La chaîne créée par str1 à l'aide de guillemets doubles sera automatiquement ajoutée au pool de constantes de chaîne, tandis que la chaîne créée par str2 à l'aide du nouveau mot-clé sera sur le tas. nouvel objet dans . Nous utilisons la fonction String.intern() pour ajouter manuellement str3 au pool de constantes de chaîne afin qu'il référence le même objet que str1. str4 est une chaîne épissée par StringBuilder. Un nouvel objet est créé dans le tas, qui est différent de l'objet référencé par str1. Enfin, utilisez la fonction String.intern() pour ajouter str5 au pool de constantes de chaîne, en faisant référence au même objet que str1.
En exécutant le programme, nous pouvons trouver le résultat suivant :
str1 == str2: false str1 == str3: true str1 == str4: false str1 == str5: true
Comme le montre la sortie, après avoir utilisé la fonction String.intern() pour ajouter la chaîne au pool de constantes de chaîne, en comparant la valeur de référence du chaîne, vous pouvez déterminer si deux chaînes sont égales. Étant donné que les objets chaîne dans le pool de constantes chaîne sont uniques, le jugement de référence peut éviter une comparaison un par un du contenu des caractères, améliorant ainsi les performances du programme.
Il convient de noter qu'après avoir utilisé la fonction String.intern() pour ajouter une chaîne au pool de constantes de chaîne, elle recherchera d'abord s'il existe une chaîne avec le même contenu dans le pool de constantes, et si c'est le cas, renverra le objet dans le pool constant. Sinon, créez un nouvel objet dans le pool constant. Par conséquent, vous devez faire attention à l'utilisation de la mémoire lorsque vous utilisez la fonction String.intern() et éviter d'ajouter fréquemment un grand nombre d'objets chaîne au pool de constantes chaîne.
En bref, en utilisant la fonction String.intern() de Java, vous pouvez ajouter des chaînes au pool de constantes de chaînes pour réutiliser des objets de chaîne, améliorant ainsi les performances du programme et économisant de l'espace mémoire. Dans le développement réel, la fonction String.intern() peut être utilisée de manière flexible selon des scénarios spécifiques pour obtenir l'effet d'optimisation du programme.
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!