Maison > Java > javaDidacticiel > Quand devez-vous utiliser le mot-clé « new » pour les chaînes Java ?

Quand devez-vous utiliser le mot-clé « new » pour les chaînes Java ?

Barbara Streisand
Libérer: 2024-12-07 21:54:13
original
589 Les gens l'ont consulté

When should you use the

Littéraux de chaîne et nouveaux mots-clés dans les chaînes Java

En Java, la classe String est un type de données fondamental utilisé pour représenter des séquences de caractères. Cependant, il existe une différence subtile entre créer un nouvel objet String à l'aide du nouveau mot-clé et attribuer directement une chaîne littérale à une variable.

Utiliser le nouveau mot-clé

Le extrait de code String s = new String("idiot"); crée une nouvelle instance de la classe String, avec le littéral « idiot » comme argument. Cette opération alloue de la mémoire supplémentaire et crée un nouvel objet sur le tas.

Attribuer directement un littéral

Par contre, l'affectation String s = "Plus idiot " ; attribue directement la valeur littérale "Plus idiot" à la variable s. Java crée automatiquement un objet String anonyme et le stocke dans la variable, sans qu'il soit nécessaire d'utiliser le nouveau mot-clé. Cette optimisation évite l'allocation de mémoire et la création d'objets inutiles.

Cependant, dans le cas de la classe CaseInsensitiveString, qui n'étend pas la classe String, l'affectation directe d'un littéral n'est pas directement prise en charge. Pour permettre cela, nous avons deux options :

Option 1 : Étendre la classe String

Nous pouvons étendre la classe String pour créer une classe CaseInsensitiveString qui hérite de son comportement et permet l'affectation directe de littéraux. Cela se fait en remplaçant les méthodes toString() et equals() pour fournir des comparaisons insensibles à la casse.

Option 2 : surcharges de constructeurs personnalisés

Une autre approche consiste à surcharger le constructeur de CaseInsensitiveString pour accepter les arguments littéraux. Ceci peut être réalisé en fournissant un constructeur qui prend un argument String et initialise automatiquement le champ s.

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