Maison >Java >javaDidacticiel >Quand devez-vous utiliser le mot-clé « new » pour les chaînes Java ?
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!