Différence entre String StringBuffer et StringBuilder en Java

Table des matières:

Différence entre String StringBuffer et StringBuilder en Java
Différence entre String StringBuffer et StringBuilder en Java

Vidéo: Différence entre String StringBuffer et StringBuilder en Java

Vidéo: Différence entre String StringBuffer et StringBuilder en Java
Vidéo: Tricky Interview Question | Difference between String, StringBuffer and StringBuilder in Java 2024, Novembre
Anonim

Différence clé - String vs StringBuffer vs StringBuilder en Java

String, StringBuffer et String Builder sont des classes en Java. String est largement utilisé dans la programmation Java. Une fois qu'un objet de String est créé, il n'est pas possible de le modifier. Chaque fois qu'un changement se produit dans la chaîne, il crée une nouvelle chaîne. Même s'il s'agit d'une concaténation avec 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. La principale différence entre String, StringBuffer et StringBuilder en Java est que String est une classe permettant de 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 assurant la sécurité des threads et StringBuilder est un classe utilisée pour modifier les chaînes qui ne fournissent pas la sécurité des threads.

Qu'est-ce qu'une chaîne 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 sont immuables, ce qui signifie qu'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 chaîne est entouré de guillemets doubles. 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 de constantes de chaîne. Si la chaîne existe, une référence au pool de constantes String est renvoyée. S'il s'agit d'une nouvelle chaîne, cet objet est créé dans le pool de constantes String.

Différence entre String StringBuffer et StringBuilder en Java
Différence entre String StringBuffer et StringBuilder en Java
Différence entre String StringBuffer et StringBuilder en Java
Différence entre String StringBuffer et StringBuilder en Java

Figure 01: Programme Java utilisant String, StringBuffer et StringBuilder

Reportez-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 au "Bonjour" 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" sortant existe toujours dans le pool de constantes String.

S'il y a un code qui est, Chaine 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 modifiables. Par conséquent, ces objets peuvent être modifiés. StringBuffer définit quatre constructeurs. StringBuffer(), StringBuffer(int size), 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 modifiables. 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(int size), StringBuilder(String str).

Reportez-vous au code ci-dessous.

StringBuilder s1=new 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'un tout nouvel objet String.

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 ?

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 qui est utilisée pour créer des objets chaîne, qui peuvent être modifiés sans thread safety.
Mutabilité
Chaîne La chaîne est une classe immuable.
StringBuffer StringBuffer est une classe mutable.
StringBuilder StringBuilder est une classe mutable.
Sécurité des fils
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ées sûres 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 identiques, mais ils ont des significations différentes. Ce sont toutes 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 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 la sécurité des threads.

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

Conseillé: