Maison > Java > javaDidacticiel > Pourquoi pouvez-vous créer des chaînes en Java sans le « nouveau » mot-clé ?

Pourquoi pouvez-vous créer des chaînes en Java sans le « nouveau » mot-clé ?

Barbara Streisand
Libérer: 2024-11-16 21:51:03
original
618 Les gens l'ont consulté

Why Can You Create Strings in Java Without the

Chaînes : Objets sans le "nouveau" mot-clé

Les chaînes Java sont bien des objets, mais elles sont uniques dans le sens où elles peuvent être créées sans le mot clé "nouveau". Cela soulève la question : pourquoi ?

Au départ, les chaînes peuvent sembler créées comme d'autres objets :

Object obj = new Object();
Copier après la connexion

Cependant, les chaînes ne sont pas initialisées de cette manière :

String str = "Hello World";
Copier après la connexion

Internement des littéraux de chaînes

Pour comprendre cet écart, nous devons approfondir le concept d'internement de chaînes. L'internement signifie que chaque occurrence d'une chaîne littérale spécifique (par exemple, "abcd") fait référence à une seule instance de cette chaîne, plutôt que de créer une nouvelle instance à chaque fois.

En Java, les chaînes déclarées avec des guillemets doubles sont traités comme des littéraux et sont automatiquement internés. Cela signifie que :

String a = "abcd";
String b = "abcd";
Copier après la connexion

entraînera :

a == b; // True
Copier après la connexion

Création de chaîne avec "nouveau"

Bien que l'internement soit activé pour la chaîne littéraux, vous pouvez toujours créer des chaînes en utilisant le mot-clé "new" :

String a = new String("abcd");
String b = new String("abcd");
Copier après la connexion

Cependant, dans ce cas, il est possible d'avoir :

a == b; // False
Copier après la connexion

Avantages du stage

Les littéraux de chaîne internes offrent plusieurs avantages :

  • Performances : En utilisant une seule instance pour chaque chaîne unique, la JVM alloue moins de mémoire et exécute moins de créations d'objets.
  • Économies de mémoire : L'internement garantit qu'une seule instance existe pour chaque chaîne distincte, réduisant ainsi l'empreinte mémoire.
  • Vérification de l'égalité : L'utilisation de "==" pour les littéraux de chaîne est valide car elle vérifie l'égalité physique, qui est garantie grâce à l'internement.

Remarque : Il est toujours recommandé d'utiliser le . méthode equals() pour comparer des chaînes, même pour les chaînes internes, car elle vérifie l'égalité du contenu.

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!

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