Pourquoi StringBuilder malgré les capacités d'ajout de String ?
La classe String de Java propose des méthodes pour ajouter du contenu, mais elle est immuable, ce qui signifie qu'elle ne peut pas modifier son contenu interne. État. Par conséquent, chaque opération d'ajout crée un nouvel objet String, un processus inefficace pour les ajouts répétitifs.
Enter StringBuilder
StringBuilder résout cette limitation en étant mutable. Sa méthode append modifie son tableau de caractères sous-jacent, éliminant le besoin de générer de nouveaux objets à chaque ajout. Cette efficacité est particulièrement précieuse dans les boucles et les manipulations de chaînes complexes.
Comparaison :
Considérons l'exemple suivant :
String str = ""; for (int i = 0; i < 500; i++) { str += i; }
Ce code crée 500 de nouveaux objets String, entraînant une surcharge importante. En revanche, l'utilisation de StringBuilder :
StringBuilder sb = new StringBuilder(); for (int i = 0; i < 500; i++) { sb.append(i); }
augmente le même objet String sans en créer de nouveaux.
Conversion automatique
Le compilateur traduit automatiquement la concaténation expressions (par exemple, "String d = a b c") dans des expressions basées sur StringBuilder opérations :
String d = new StringBuilder(a).append(b).append(c).toString();
Autres options :
En plus de StringBuilder, Java fournit StringBuffer, qui a des méthodes synchronisées. Il est principalement utile dans les scénarios multithread où un accès thread-safe est nécessaire.
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!