Quelles sont les différences entre string, stringbuffer et stringbuilder ?
Lors d'un entretien téléphonique, il a été demandé à l'éditeur si StringBuilder était thread-safe . C'est prudent de laisser échapper, mais les gens me demandent si vous avez 2 ans d'expérience en développement. Ne pas utiliser ce cours depuis longtemps m'a fait oublier mon choix. On peut aussi dire que les bases ne sont pas solides. Je ne sais pas si l’un d’entre vous a vécu une telle expérience, je ferais donc mieux de l’enregistrer par écrit pour améliorer ma mémoire.
String : Tout le monde sait que String est modifié avec final, donc sa valeur est immuable. Cela fait que chaque opération sur String génère un nouvel objet String. C'est non seulement inefficace, mais aussi un grand nombre de gaspillage. espace mémoire limité, comme le montre la figure :
Nous pouvons voir que la valeur initiale de la chaîne est "abc", puis ajouter une nouvelle chaîne après cette chaîne " bv" , ce processus nécessite de rouvrir l'espace mémoire dans la mémoire de la pile. Enfin, la chaîne "abcbv" doit ouvrir l'espace mémoire en conséquence. Deux chaînes aussi courtes doivent ouvrir l'espace mémoire trois fois. disons que c'est un énorme gaspillage d'espace mémoire. Afin de gérer les opérations fréquentes liées aux chaînes, deux nouvelles classes – la classe StringBuffer et la classe StringBuild – ont été introduites pour gérer ces chaînes changeantes.
Classe StringBuilder : proposée en Java 5, caractérisée par des chaînes mutables. Haute efficacité d’exécution et thread dangereux.
Classe StringBuffer : caractérisée par des chaînes variables, une faible efficacité d'exécution et une sécurité des threads.
On voit que le temps est plus rapide.
Résumé :
Si vous souhaitez exploiter une petite quantité de données, utilisez String ;
Opération multithread ; opération du tampon de chaîne Une grande quantité de données StringBuffer;
Un seul thread exploite une grande quantité de données StringBuilder sous le tampon de chaîne.
Tutoriel recommandé : "Tutoriel Java"
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!