Maison > Java > javaDidacticiel > le corps du texte

Pourquoi la classe String est-elle immuable ou finale en Java ?

WBOY
Libérer: 2023-08-20 22:05:09
avant
1010 Les gens l'ont consulté

Pourquoi la classe String est-elle immuable ou finale en Java ?

La chaîne est immuable signifie que nous ne pouvons pas changer l'objet lui-même, mais nous pouvons changer la référence à l'objet. La chaîne est rendue définitive pour ne pas permettre à d'autres de l'étendre et de détruire son immuabilité.

  • Sécurité Les paramètres sont généralement représentés sous forme de chaîne dans les connexions réseau, les URL de connexion à la base de données, les noms d'utilisateur/mots de passe, etc. S'ils étaient modifiables, ces paramètres pourrait être modifié facilement.
  • Synchronisation et concurrence rendre String immuable les rend automatiquement thread-safe, résolvant ainsi les problèmes de synchronisation.
  • Caching lorsque le compilateur optimise nos objets String, il semble que si deux objets ont la même valeur (un =" test", et b =" test") et nous n'avons donc besoin que d'un seul objet chaîne (pour a et b, ces deux pointeront vers le même objet).
  • Chargement de classe La chaîne est utilisée comme arguments pour la classe chargement. S'il est mutable, cela pourrait entraîner le chargement de la mauvaise classe (car les objets mutables changent d'état).

Exemple :

public class StringImmutableDemo {
   public static void main(String[] args) {
      String st1 = "Tutorials";
      String st2 = "Point";
      System.out.println("The hascode of st1 = " + st1.hashCode());
      System.out.println("The hascode of st2 = " + st2.hashCode());
      st1 = st1 + st2;
      System.out.println("The Hashcode after st1 is changed : "+ st1.hashCode());
   }
}
Copier après la connexion

输出:

The hascode of st1 = -594386763
The hascode of st2 = 77292912
The Hashcode after st1 is changed : 962735579
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
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