Pas vraiment en fait !
Au chargement des classes s'il y a deux variables avec la valeur "c" alors les variables auront la même référence ni plus ni moins !
C'est une optimisation pour pas encombrer la mémoire !
Tout cela est possible uniquement par ce que les String sont immutable.
Ou as tu lu que j'avais dis que le "==" ne marchait pas sur les String ?
Ce que j'ai dit c'est que le "==" compare les références (dans le cadre des objets), pas les valeurs !
Vu que tu ne semble pas le comprendre, je vais te donner un exemple qui va te montrer la différence :
Tu vois pourquoi il faut comprendre !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 String v1 = "C"; String v2 = "C"; String v3 = new String("C"); // créé une nouvelle référence contenant la valeur "C" System.out.println("v1 == v2 --> " + (v1 == v2)); // true System.out.println("v1 == v3 --> " + (v1 == v3)); // false








Répondre avec citation









Partager