Différence entre String StringBuffer et StringBuilder dans Java

Différence entre String StringBuffer et StringBuilder dans Java

Différence clé - chaîne 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 un objet de chaîne créé, il n'est pas possible de les changer. Chaque fois qu'un changement se produit en chaîne, il 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 provoque un gaspillage de mémoire. Les classes StringBuffer et StringBuilder en Java sont utilisées pour modifier String. Le différence clé Entre String, StringBuffer et StringBuilder dans 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 les chaînes qui assurent la sécurité du thread, et StringBuilder est une classe qui est utilisée pour modifier les chaînes qui ne fournissent pas de sécurité de thread.

CONTENU

1. Aperçu et différence clé
2. Qu'est-ce que la chaîne 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 dans Java
6. Comparaison côte à côte - String vs StringBuffer vs StringBuilder en java sous forme tabulaire
7. Résumé

Qu'est-ce que la chaîne en java?

La classe de chaîne est en java.Package Lang. Chaque fois que le programmeur crée une chaîne, c'est un objet de chaîne de type. Les cordes ont une signification immuable une fois l'objet 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 cordes est enfermé en doubles citations. e.g. "Bonjour le monde".  Chaque fois qu'un littéral de chaîne créé, la machine virtuelle Java (JVM) vérifie le pool constant de chaîne. Si la chaîne existe, une référence au pool constant de chaîne est retournée. S'il s'agit d'une nouvelle chaîne, cet objet est créé dans le pool constant de chaîne.

Figure 01: Programme Java à l'aide de String, StringBuffer et StringBuilder

Référer le morceau de code ci-dessous.

String S1 = «Hello»;

S1 = S1 + «Monde»;

Système.dehors.println (S1);

Dans la première instruction, S1 fait référence au «Hello» dans le pool constant de chaîne. Dans la deuxième instruction, JVM ne modifie pas la chaîne existante. Au lieu de cela, il crée une nouvelle chaîne comme «Hello World» et S1 fait maintenant référence à cette nouvelle chaîne. L'objet «Hello» sortant existe toujours dans le pool constant de chaîne.

S'il y a un code qui est,

String S1 = "Hello";

String S2 = S1;

S1, S2 fera référence à l'objet de chaîne «bonjour».

Qu'est-ce que StringBuffer en Java?

La classe StringBuffer est utilisée pour rendre les objets de chaîne mutables. Par conséquent, ces objets peuvent être modifiés. StringBuffer définit quatre constructeurs. StringBuffer (), StringBuffer (int Size), StringBuffer (String Str), StringBuffer (CharSequence [] CH)

Référer le code ci-dessous,

StringBuffer S1 = new StringBuffer («Hello»);

S1.ajouter («monde»);

Système.dehors.println (S1);

Dans l'énoncé 1, S1 fait référence à l'objet «Hello» dans un tas. L'objet est mutable car il est créé à l'aide de StringBuffer. Dans l'énoncé 2, le «monde» est annexé dans le même objet de chaîne «Hello».

Les objets de chaîne créés avec la classe StringBuffer peuvent enregistrer la mémoire. StringBuffer fournit la sécurité du thread car deux threads ne peuvent pas accéder simultanément à la même méthode dans la classe StringBuffer. Filetage Sécurité Diminue les performances de StringBuffer. StringBuffer Class contenait des méthodes telles que A SPEND (), insert (), reverse (), remplacer ().

Qu'est-ce que StringBuilder en Java?

La classe StringBuilder est utilisée pour rendre les objets de chaîne mutables. Par conséquent, ces objets peuvent être modifiés. La fonctionnalité est similaire à StringBuffer, mais cela ne fournit pas de sécurité de thread. StringBuilder a des constructeurs tels que StringBuilder (), StringBuilder (int size), StringBuilder (String Str).

Référer le code ci-dessous.

StringBuilder S1 = new StringBuilder («Hello»);

S1.ajouter («monde»);

Système.dehors.println (S1);

Dans l'énoncé 1, S1 fait référence à l'objet «Hello» dans un tas. L'objet est mutable car il est créé à l'aide de StringBuilder. Dans l'énoncé 2, le «monde» est annexé dans le même objet de chaîne «Hello».  Il n'y a pas de création d'un objet de chaîne complètement nouveau.

Les objets de chaîne créés avec StringBuilder Class peuvent enregistrer 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. StringBuilder Class contient des méthodes telles que A SPEND (), INSERT (), Reverse (), remplace ().

Quelle est la similitude entre String, StringBuffer et StringBuilder dans Java?

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

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

String vs StringBuffer vs StringBuilder

Chaîne La chaîne est une classe Java qui est utilisée pour créer un objet de chaîne de type, qui est une séquence de caractères.
Stringbuffer StringBuffer est une classe Java qui est utilisée pour créer des objets String, qui peuvent être modifiés avec la sécurité du thread.
Balein de cordes StringBuilder est une classe utilisée pour créer des objets de chaîne, qui peuvent être modifiés sans sécurité.
Mutabilité
Chaîne La chaîne est une classe immuable.
Stringbuffer StringBuffer est une classe mutable.
Balein de cordes StringBuilder est une classe mutable.
Sécurité en fil
Chaîne Les méthodes de chaîne sont sûres.
Stringbuffer Les méthodes de StringBuffer sont en file d'attente et synchronisées.
Balein de cordes Les méthodes de StringBuilder ne sont pas en file d'attente et non synchronisées.
Performance
Chaîne La chaîne est rapide.
Stringbuffer StringBuffer est lent.
Balein de cordes StringBuilder est rapide.

Résumé - chaîne vs StringBuffer vs StringBuilder en java 

String, StringBuffer et StringBuilder semblent être les mêmes, mais ils ont des significations différentes. Tous ce sont des cours 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 les chaînes et fournir la sécurité des threads, tandis que StringBuilder est un classe qui est utilisée pour modifier les chaînes qui ne fournissent pas la sécurité des fils.

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

Référence:

1.«String vs StringBuffer vs StringBuilder.»Journaldev, 30 juillet 2017. Disponible ici
2.«Java a faim.»Différence entre les classes String, StringBuilder et StringBuffer avec exemple: Java | Java faim. Disponible ici 
3.tutorielpoint.com. «Java Strings." Le point. Disponible ici