Différence clé - String vs StringBuffer vs StringBuilder en Java
String, StringBuffer et String Builder sont des classes en Java. La chaîne est largement utilisée dans la programmation Java. Une fois qu'un objet de String est créé, il n'est pas possible de les modifier. Chaque fois qu'une modification se produit dans la chaîne, elle crée une nouvelle chaîne. Même s'il s'agit d'une concaténation à une chaîne existante, elle crée une nouvelle chaîne. Cela entraîne un gaspillage de mémoire. Les classes StringBuffer et StringBuilder en Java sont utilisées pour modifier String. La principale différence entre String, StringBuffer et StringBuilder en Java est que String est une classe pour créer un objet de type String qui est une séquence de caractères, StringBuffer est une classe qui est utilisée pour modifier des chaînes qui assure la sécurité des threads, et StringBuilder est un classe utilisée pour modifier les chaînes qui ne fournissent pas de sécurité de thread.
CONTENU
1. Présentation et différence clé
2. Qu'est-ce que String en Java
3. Qu'est-ce que StringBuffer en Java
4. Qu'est-ce que StringBuilder en Java
5. Similitudes entre String StringBuffer et StringBuilder en Java
6. Comparaison côte à côte - String vs StringBuffer vs StringBuilder en Java sous forme tabulaire
7. Résumé
Qu'est-ce que String en Java?
La classe String est dans le package java.lang. Chaque fois que le programmeur crée une chaîne, il s'agit d'un objet de type String. Les chaînes ont une signification immuable une fois que l'objet est créé, il ne peut pas être modifié. Les objets créés à l'aide de classes wrapper telles que Integer, Byte, Float, Double sont également immuables. Un littéral de chaîne est placé entre guillemets. par exemple «Hello World». Chaque fois qu'un littéral de chaîne est créé, la machine virtuelle Java (JVM) vérifie le pool de constantes String. Si la chaîne existe, une référence au pool de constantes String est renvoyée. S'il s'agit d'un nouveau String, cet objet est créé dans le pool de constantes String.
Figure 01: programme Java utilisant String, StringBuffer et StringBuilder
Reportez-vous au morceau de code ci-dessous.
String s1 = "Bonjour";
s1 = s1 + «Monde»;
System.out.println (s1);
Dans la première instruction, s1 fait référence au «Hello» dans le pool de constantes String. Dans la deuxième instruction, JVM ne modifie pas la chaîne existante. Au lieu de cela, il crée une nouvelle chaîne en tant que «Hello World» et s1 fait maintenant référence à cette nouvelle chaîne. L'objet «Hello» existant existe toujours dans le pool de constantes String.
S'il y a un code qui est, String s1 = "Bonjour";
Chaîne s2 = s1;
s1, s2 feront tous deux référence à l'objet String «Hello».
Qu'est-ce que StringBuffer en Java?
La classe StringBuffer est utilisée pour rendre les objets String mutables. Par conséquent, ces objets peuvent être modifiés. StringBuffer définit quatre constructeurs. StringBuffer (), StringBuffer (taille int), StringBuffer (String str), StringBuffer (charSequence ch)
Reportez-vous au code ci-dessous, StringBuffer s1 = nouveau StringBuffer («Bonjour»);
s1.append («Monde»);
System.out.println (s1);
Dans l'instruction 1, s1 fait référence à l'objet «Hello» dans un tas. L'objet est modifiable car il est créé à l'aide de StringBuffer. Dans l'instruction 2, «World» est ajouté au même objet String «Hello».
Les objets String créés avec la classe StringBuffer peuvent économiser de la mémoire. StringBuffer assure la sécurité des threads car deux threads ne peuvent pas accéder simultanément à la même méthode dans la classe StringBuffer. La sécurité des threads diminue les performances de StringBuffer. La classe StringBuffer contient des méthodes telles que append (), insert (), reverse (), replace ().
Qu'est-ce que StringBuilder en Java?
La classe StringBuilder est utilisée pour rendre les objets String mutables. Par conséquent, ces objets peuvent être modifiés. La fonctionnalité est similaire à StringBuffer, mais cela n'assure pas la sécurité des threads. StringBuilder a des constructeurs tels que StringBuilder (), StringBuilder (taille int), StringBuilder (String str).
Reportez-vous au code ci-dessous.
StringBuilder s1 = nouveau StringBuilder («Bonjour»);
s1.append («Monde»);
System.out.println (s1);
Dans l'instruction 1, s1 fait référence à l'objet «Hello» dans un tas. L'objet est modifiable car il est créé à l'aide de StringBuilder. Dans l'instruction 2, «World» est ajouté au même objet String «Hello». Il n'y a pas de création d'objet String complètement nouveau.
Les objets String créés avec la classe StringBuilder peuvent économiser de la mémoire. Contrairement à StringBuffer, StringBuilder ne fournit pas de sécurité de thread car deux threads peuvent accéder simultanément à la même méthode dans la classe StringBuilder. La classe StringBuilder contient des méthodes telles que append (), insert (), reverse (), replace ().
Quelle est la similitude entre String, StringBuffer et StringBuilder en Java?
Tous peuvent être utilisés pour créer des chaînes
Quelle est la différence entre String StringBuffer et StringBuilder en Java?
Diff article au milieu avant la table
String vs StringBuffer vs StringBuilder |
|
Chaîne | La chaîne est une classe Java utilisée pour créer un objet de type String, qui est une séquence de caractères. |
StringBuffer | StringBuffer est une classe Java utilisée pour créer des objets String, qui peuvent être modifiés avec la sécurité des threads. |
StringBuilder | StringBuilder est une classe utilisée pour créer des objets chaîne, qui peuvent être modifiés sans sécurité de thread. |
Mutabilité | |
Chaîne | La chaîne est une classe immuable. |
StringBuffer | StringBuffer est une classe mutable. |
StringBuilder | StringBuilder est une classe mutable. |
Sécurité du fil | |
Chaîne | Les méthodes de String sont thread-safe. |
StringBuffer | Les méthodes de StringBuffer sont thread-safe et synchronisées. |
StringBuilder | Les méthodes de StringBuilder ne sont pas thread-safe et ne sont pas synchronisées. |
Performance | |
Chaîne | La chaîne est rapide. |
StringBuffer | StringBuffer est lent. |
StringBuilder | StringBuilder est rapide. |
Résumé - String vs StringBuffer vs StringBuilder en Java
String, StringBuffer et StringBuilder semblent être les mêmes, mais ils ont des significations différentes. Tous ces éléments sont des classes Java. La différence entre String, StringBuffer et StringBuilder en Java est que, String est une classe pour créer un objet de type String, qui est un ensemble de caractères, StringBuffer est une classe qui est utilisée pour modifier des chaînes et assurer la sécurité des threads, tandis que StringBuilder est un classe utilisée pour modifier les chaînes qui ne fournissent pas de sécurité de thread.
Téléchargez le PDF String vs StringBuffer vs StringBuilder en Java
Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne selon la note de citation. Veuillez télécharger la version PDF ici Différence entre String StringBuffer et StringBuilder en Java