Différence entre StringBuilder et StringBuffer

StringBuffer et StringBuilder sont deux classes importantes en Java qui représentent une chaîne de caractéres mutable. Puisque on peut pas modifier un objet String en Java, toute modification ou opération sur un objet String, par ex. le convertir en majuscule ou en minuscule, ajouter un caractère, supprimer un caractère entraîne un nouvel objet String. Cela peut étre lourd pour le Garbage Collector si votre application génère beaucoup d’instances de chaînes de caractéres, afin d’éviter ce problème, le concepteur Java a présenté initialement la classe StringBuffer, puis la version ultérieure de StringBuilder. Lorsque StringBuffer a été introduit, il pose son propre problème, par exemple. il était synchronisé et était donc beaucoup plus lent.
 
 

Table de comparaison
StringBufferStringBuilder
SynchronisationStringBuffer est synchronisé, c’est-à-dire thread-safe. Cela signifie que deux threads ne peuvent pas appeler les méthodes de StringBuffer simultanément.StringBuilder n’est pas synchronisé, c’est-à-dire qu’il n’est pas thread-safe. Cela signifie que deux threads peuvent appeler les méthodes de StringBuilder simultanément.
Efficacité StringBuffer est moins efficace que StringBuilder.StringBuilder est plus efficace que StringBuffer.
Qu'est-ce que l'abstraction de données dans POOQu’est-ce que l’abstraction de données dans la POO?L’abstraction est l’un des concepts clés dans les langages de programmation orientée objet (POO). Son objectif principal est de gérer la complexité en masquant les…Lire plus

 

La différence clé entre StringBuilder et StringBuffer

StringBuilder est plus rapide que StringBuffer car il n’est pas synchronisé.

Exemple :

public class TestTimeExecution {
    public static void main(String[] args) {
        long time;

        //Calculer le temps d’exécution de stringbuffer
        {
            StringBuffer stringbuffer = new StringBuffer();
            time = System.currentTimeMillis();
            for (int j = 999999999; j-- > 0 ; ) {
                stringbuffer.append("");
            }
            System.out.println("StringBuffer = "+(System.currentTimeMillis() - time)+" ms");
        }
        
        //Calculer le temps d’exécution de stringbuilder
        {
            StringBuilder stringbuilder = new StringBuilder();
            time = System.currentTimeMillis();
            for (int j = 999999999; j > 0 ; j--) {
                stringbuilder.append("");
            }
            System.out.println("StringBuilder = "+(System.currentTimeMillis() - time)+" ms");
        }
    }
}

La sortie :

QCM-JavaQCM Java – Programmation Orientée ObjetQCM sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus
Conclusion:

 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *