Différence entre String et Stringbuffer en Java
Quelle est la différence entre String et Stringbuffer en Java ? – Java fournit les deux classes StringBuffer et String, cette dernière est utilisée pour manipuler des chaînes de caractères qui ne peuvent pas être modifiées. En termes simples, les objets de type String sont en lecture seule et qui ne changent pas. La classe StringBuffer est utilisée pour représenter des caractères pouvant être modifiés.
La différence de performance significative entre ces deux classes est que StringBuffer est plus rapide que String lors de la réalisation de concaténations simples. Les concaténations sont généralement effectuées comme suit:
String str = new String ("Hello "); str += "world!";
Si vous deviez utiliser StringBuffer pour effectuer la même concaténation, vous auriez besoin du code suivant:
StringBuffer str = new StringBuffer ("Hello "); str.append("world!");
Table de comparaison
String | Stringbuffer | |
---|---|---|
La longueur | La longueur de l’objet String est fixe. | La longueur du StringBuffer peut être augmentée. |
Modification | L’objet String ne changent pas. | L’objet StringBuffer est modifiable. |
Performance | Il est plus lent pendant la concaténation. | C’est plus rapide pendant la concaténation. |
Mémoire | Consomme plus de mémoire. | Consomme moins de mémoire. |
La classe Object | La classe String remplace la méthode equals() de la classe Object. Vous pouvez donc comparer le contenu de deux chaînes avec la méthode equals(). | La classe StringBuffer ne remplace pas la méthode equals() de la classe Object. |
Conclusion
Les objets StringBuffer fournissent plus de fonctionnalités par rapport à la classe String. Par conséquent, il est préférable de travailler avec StringBuffer à la place de String.