Différence Entre StringBuffer Et StringBuilder

Différence Entre StringBuffer Et StringBuilder
Différence Entre StringBuffer Et StringBuilder

Vidéo: Différence Entre StringBuffer Et StringBuilder

Vidéo: Différence Entre StringBuffer Et StringBuilder
Vidéo: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, Mai
Anonim

StringBuffer vs StringBuilder

Java est un langage orienté objet très populaire. En Java, la classe String est fournie pour contenir une séquence de caractères qui ne peut pas être modifiée (une fois initialisée). Alternativement, le langage de programmation Java fournit deux types de séquences de caractères mutables. Autrement dit, lorsque les programmeurs doivent modifier un certain String (après l'initialisation), ils doivent utiliser la classe StringBuffer ou la classe StringBuilder, au lieu de la classe String. StringBuffer a été introduit dans JDK 1.0 et la classe StringBuilder a été introduite dans JDK 1.5, en fait en remplacement de la classe StringBuffer (pour les environnements à un seul thread).

Qu'est-ce que StringBuffer?

La classe StringBuffer a été introduite dans JDK 1.0. La classe StringBuffer appartient au package java.lang et est héritée du générique java.lang.object. Les programmeurs ne peuvent pas l'étendre davantage car c'est une classe finale. La classe StringBuffer implémente les interfaces Serializable, Appendable et CharSequience. Un objet de la classe StringBuffer peut contenir une séquence de caractères mutable et thread-safe. Cela signifie qu'il est très similaire à un objet String, mais la séquence de caractères (longueur et contenu) peut être modifiée à tout moment après l'initialisation de l'objet StringBuffer. Cependant, cela doit être fait à l'aide des méthodes spécifiques fournies par la classe StringBuffer. Il existe deux opérations principales dans la classe StringBuffer. Ils sont fournis par les méthodes append () et insert (). Ces méthodes sont surchargées,ils sont donc capables d'accepter des données de n'importe quel type tel que des nombres entiers et longs. Les deux méthodes transforment d'abord toute entrée en une chaîne, puis ajoutent (ajoute ou insère) les caractères de la chaîne correspondante à l'objet Stribbuffer existant. La méthode append () ajoute la chaîne convertie à la fin de l'objet StringBuffer existant, tandis que la méthode insert () ajoutera les caractères d'entrée au point d'insertion spécifié.

Qu'est-ce que StringBuilder?

La classe StringBuilder a été introduite dans JDK 1.5. L'API StringBuilder est très similaire à l'API StringBuffer. En fait, la classe StringBuilder a en fait été introduite en remplacement de la classe StringBuffer (pour les applications à un seul thread). La classe StringBuilder appartient au package java.lang et est héritée du java.lang.object générique. C'est une classe finale et donc les programmeurs ne peuvent pas l'étendre. La classe StringBuilder implémente les interfaces Serializable, Appendable et CharSequience. Un objet de la classe StringBuilder peut contenir une séquence de caractères mutable mais non thread-safe. Cela signifie qu'il est très similaire à un objet String, mais la chaîne peut être modifiée à tout moment. Mais la classe StringBuilder ne fournit pas de synchronisation et est donc censée être plus rapide que l'utilisation de la classe StringBuffer. La classe StringBuilder fournit des méthodes append () et insert () avec des fonctionnalités exactement similaires à celles de la classe StringBuffer.

Quelle est la différence entre StringBuffer et StringBuilder?

Bien que les classes StringBuilder et StringBuffer puissent être utilisées pour des séquences de caractères mutables en Java, elles présentent une différence essentielle. Contrairement à la classe StringBuffer, la classe StringBuilder n'est pas thread-safe et ne fournit aucune synchronisation. Par conséquent, il est recommandé que la classe StringBuilder soit utilisée à la place de la classe StringBuffer dans les applications à un seul thread, car il est prétendu que la classe StringBuilder sera beaucoup plus rapide que la classe StringBuffer (dans des circonstances normales).

Recommandé: