En plus de ce qui a déjà été dit, Chaîne de caractères littéraux [c'est à dire, comme les Chaînes "abcd"
mais pas comme new String("abcd")
] en Java sont internés, ce qui signifie que chaque fois que vous vous référez à "abcd", vous obtenez une référence à un seul String
exemple, plutôt que d'un nouveau à chaque fois. Ainsi, vous aurez
String a = "abcd";
String b = "abcd";
a == b; //True
mais si vous aviez
String a = new String("abcd")
String b = new String("abcd")
ensuite, il est possible d'avoir
a == b; // False
(et au cas où quelqu'un a besoin de le rappeler, toujours utiliser .equals()
pour comparer des Chaînes; ==
tests pour objet l'égalité)
Stage littéraux de Chaîne est bonne, car ils sont souvent utilisés plus d'une fois. Par exemple, considérons l' (fictive) du code:
for (int i = 0; i < 10; i++) {
System.out.println("Next iteration");
}
Si nous n'avions pas un stage de Cordes, la "Prochaine version" devra être instancié 10 fois, alors que maintenant, il ne sera instancié une seule fois.