Différence entre StringBuffer et StringBuilder en Java

Différence de 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 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..

CONTENU

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é

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 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".

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)

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 ().

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 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 ().

Quelle est la similarité entre String, StringBuffer et StringBuilder en Java?

  • Tout peut être utilisé pour créer des chaînes.

Quelle est la différence entre String StringBuffer et StringBuilder en Java?

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.

Résumé - String vs StringBuffer vs StringBuilder en Java 

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.

Télécharger le fichier 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, conformément à la note de citation. Veuillez télécharger la version PDF ici Différence entre String StringBuffer et StringBuilder en Java

Référence:

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 pointDisponible ici