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!