Maison > Java > javaDidacticiel > Quand devriez-vous utiliser `new String(...)` en Java ?

Quand devriez-vous utiliser `new String(...)` en Java ?

DDD
Libérer: 2024-12-26 18:58:10
original
534 Les gens l'ont consulté

When Should You Use `new String(...)` in Java?

L'énigme de la "nouvelle chaîne (...)" en Java

En étudiant des exemples de code Java, vous rencontrerez peut-être une syntaxe intrigante : assignation d'une constante String à un objet String à l'aide de l'opérateur "new". Cette approche non conventionnelle diffère de la méthode plus courante d'attribution directe d'une constante String, comme indiqué ci-dessous :

String s = new String("Hello World");
Copier après la connexion

contre

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

Intrigué par cette syntaxe énigmatique, vous approfondissez son objectif et implications potentielles.

Objectif du « nouveau String(...)"

Le constructeur "new String(...)" initialise un objet String avec une copie de la chaîne d'argument. Cela n'est généralement pas nécessaire, car les chaînes sont immuables et leur contenu ne change donc jamais. Cependant, dans des scénarios spécifiques, cela peut être bénéfique :

  • Forcer une copie distincte : Dans les cas où le tableau de caractères sous-jacent d'une chaîne pourrait être modifié ultérieurement, créer une copie distincte peut empêcher des modifications involontaires de l'original.

Les pièges du « nouveau String(...)"

Malheureusement, le comportement de "new String(String)" dépend de l'implémentation et n'est pas documenté. Cela peut conduire à des résultats inattendus et à des pièges potentiels lors de la manipulation de chaînes.

Recommandation

Pour garantir un comportement indépendant de l'implémentation, il est recommandé d'utiliser "toCharArray()" lorsque créer une copie du tableau de caractères d'une chaîne :

String copy = new String(original.toCharArray());
Copier après la connexion

Cette méthode alternative garantit qu'une copie distincte du tableau de caractères est créée, évitant ainsi toute surprise inattendue associée à "new String(...)".

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal