Tous les trois implémentent l'interface CharSequence, donc CharSequence peut être considérée comme une interface de protocole de chaîne
1 La classe String est une classe immuable, c'est-à-dire qu'une fois qu'un objet String est créé, le contenu qu'il contient. cet objet La séquence de caractères dans est immuable jusqu'à ce que l'objet soit détruit ;
Quand on définit souvent String str=new String("Define me");
str="Changed Me";
La sortie m'a changé. Il semble que Str ait changé. En fait, le point de str a été modifié. Les objets d'origine dans la mémoire tas sont devenus des déchets
Classe StringBuffer
. 🎜>
StringBuffer représente une chaîne avec une séquence de caractères variable. Après la création d'un StringBuffer, la chaîne peut être modifiée via les méthodes insert(), append(), reverse(), serChaAt() et setLength(). Enfin, après génération, il peut être converti en un objet String via la méthode toString() 3. StringBuilder est nouveau dans JDK1.5 et représente également un objet chaîne similaire à StringBuffer, les constructeurs et les méthodes de. les deux classes sont également fondamentalement les mêmes, StringBuffer était thread-safe à cette époque et StringBulider n'implémentait pas la sécurité des threads, les performances étaient donc légèrement supérieures. Par conséquent, si vous créez un objet chaîne avec des caractères variables, vous devez donner la priorité à la classe StringBuilder comparaison
1 Les trois ont la relation suivante en termes de vitesse d'exécution :
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!