String, StringBuffer et String Builder sont des classes en Java. La chaîne est largement utilisée en programmation Java. Une fois qu'un objet de String est créé, il n'est pas possible de le changer. Chaque fois qu'une modification est apportée à la chaîne, une nouvelle chaîne est créée. Même s'il s'agit d'une concaténation avec une chaîne existante, il crée une nouvelle chaîne. Cela provoque un gaspillage de mémoire. Les classes StringBuffer et StringBuilder en Java permettent de modifier String. le différence clé 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 utilisée pour modifier des chaînes fournissant une sécurité de thread, et StringBuilder est une classe utilisée pour modifier des chaînes sans sécurité de thread..
1. Vue d'ensemble 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. Similarités 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é
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 chaîne. Les chaînes ont une signification immuable une fois que l'objet est créé, il ne peut plus ê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. "Bonjour le monde". Chaque fois qu'un littéral de chaîne est créé, la machine virtuelle Java (JVM) vérifie le pool constant de chaînes. Si la chaîne existe, une référence au pool de constantes chaînes est renvoyée. S'il s'agit d'une nouvelle chaîne, cet objet est créé dans le pool constant de chaînes..
Figure 01: programme Java utilisant String, StringBuffer et StringBuilder
Référez-vous au morceau de code ci-dessous.
Chaîne s1 = "Bonjour";
s1 = s1 + «monde»;
System.out.println (s1);
Dans la première instruction, s1 fait référence à «Hello» dans le pool constant de chaînes. 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 constant de chaînes..
S'il y a un code qui est,
Chaîne s1 = "Bonjour";
Chaîne s2 = s1;
s1, s2 feront tous les deux référence à l'objet String "Hello".
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)
Référez-vous le code ci-dessous,
StringBuffer s1 = new StringBuffer («Hello»);
s1.append (“Monde”);
System.out.println (s1);
Dans l'instruction 1, s1 fait référence à l'objet «Hello» dans un segment de mémoire. L'objet est modifiable car il est créé à l'aide de StringBuffer. Dans l'instruction 2, «Monde» est ajouté au même objet «Hello» String..
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 de 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 ().
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 ne garantit pas la sécurité des threads. StringBuilder a des constructeurs tels que StringBuilder (), StringBuilder (taille int), StringBuilder (String str).
Référez-vous le code ci-dessous.
StringBuilder s1 = new StringBuilder (“Hello”);
s1.append (“Monde”);
System.out.println (s1);
Dans l'instruction 1, s1 fait référence à l'objet «Hello» dans un segment de mémoire. L'objet est modifiable car il est créé à l'aide de StringBuilder. Dans l'instruction 2, «Monde» est ajouté au même objet «Hello» String. Il n'y a pas de création d'objet String complètement nouvel.
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 de la classe StringBuilder. La classe StringBuilder contient des méthodes telles que append (), insert (), reverse (), replace ().
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é du thread.. |
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 chaîne sont thread-safe. |
StringBuffer | Les méthodes de StringBuffer sont sécurisées pour les threads et synchronisées. |
StringBuilder | Les méthodes de StringBuilder ne sont pas sécurisées par les threads et ne sont pas synchronisées. |
Performance | |
Chaîne | La ficelle est rapide. |
StringBuffer | StringBuffer est lent. |
StringBuilder | StringBuilder est rapide. |
String, StringBuffer et StringBuilder semblent être identiques, mais leur signification est différente. Toutes ces classes sont des classes Java. La différence entre String, StringBuffer et StringBuilder en Java réside dans le fait que String est une classe permettant de créer un objet de type String, qui est un ensemble de caractères. StringBuffer est une classe utilisée pour modifier les chaînes et assurer la sécurité des threads. classe utilisée pour modifier des chaînes qui ne fournissent pas de sécurité de thread.
Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne, conformément à la note de citation. Veuillez télécharger la version PDF ici Différence entre String StringBuffer et StringBuilder en Java
1. «String vs StringBuffer vs StringBuilder.» JournalDev, 30 juillet 2017. Disponible ici
2. «Java Hungry». Différence entre les classes String, StringBuilder et StringBuffer avec l'exemple: Java | Java affamé. Disponible ici
3.tutorialspoint.com. "Java Strings." Le point. Disponible ici