Quand puis-je utiliser cette fonction en faveur de Chaîne.equals()
lorsque vous avez besoin de vitesse puisque vous pouvez comparer des chaînes par référence (== est plus rapide que d'égal à égal)
Des effets indésirables non mentionnés dans la Javadoc?
Le principal inconvénient est que vous devez vous rappeler pour vous assurer que vous faites réellement stagiaire() toutes les chaînes que vous allez comparer. Il est facile d'oublier de faire un stage() toutes les chaînes et ensuite, vous pouvez obtenir point de prêter à des résultats incorrects. Aussi, l'intérêt de tous, s'il vous plaît être sûr de très clairement le document que vous êtes en s'appuyant sur les cordes internalisé.
Le deuxième inconvénient, si vous décidez d'internaliser les chaînes, c'est que le stagiaire() la méthode est relativement cher. Il a à gérer la piscine de chaînes uniques de sorte qu'il n'juste un peu de travail (même si la chaîne a déjà été intériorisée). Alors, soyez prudent dans votre code la conception de sorte que vous, par exemple, stagiaire() toutes les chaînes d'entrée de sorte que vous n'avez pas à vous soucier plus.
(à partir de JGuru)
MODIFIER
Comme Michael Borgwardt dit:
Troisième inconvénient: l'internement des Chaînes de vivre dans la PermGen space, qui est généralement assez petit, vous risquez de rencontrer un OutOfMemoryError avec beaucoup d'espace de segment de mémoire.
** EDIT **
Dans Java 7 – la chaîne de la piscine a été transféré sur le tas. Cela signifie que vous n'êtes plus limité par une zone de mémoire de taille fixe.