Rechercher : dans
Par :

String et string buffer en java

Dernière réponse le 30 jan 2002 à 18:26:16 Lionel, le 30 jan 2002 à 17:37:00 
 Signaler ce message aux modérateurs

Salut à tous,

Je n'arrive pas à comprendre la différence entre string et stringbuffer, selon l'aide une string instanciée ne pourrait plus etre modifiée alors que les stringbuffer peuvent etre manipulées. Je ne comprend rien car quand j'affecte une valeur à une chaîne string dans un programme, je peux à tout moment lui en affecter une autre ou manipuler la sus dite string. Il me semble que j'arrive à faire les mêmes choses avec des strings ou des stringbuffer, je ne comprend pas !

Qqn a t'il compris la difference qu'il y a vraiment ? Peut on me l'expliquer ?

Merci

Meilleures réponses pour « String et string buffer en java » dans :
[Gravure] Buffer underrun (tampon vide) VoirLe problème de vidage de tampon (buffer underrun) est une erreur classique intervenant lors de la gravure d'un CD ou d'un DVD. Cette erreur provient du fait qu'un graveur doit nécessairement graver en continu, ce qui signifie que les données à...
Framework de test StrutsTestCase (Partie 1): Présentation VoirPrésentation générale Les différentes approches de test Liste des jars du framework StrutsTestCase Présentation du Framework de test StrutsTestCase Présentation générale Le framework de test StrutsTestCase, des applications JAVA JEE est...
Java: Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
Javascript - L'objet String VoirLes particularités de l'objet String string est un mot anglais qui signifie "chaîne", il s'agit en fait de chaîne de caractères. L'objet String est un objet qui contient un certain nombre de propriétés et de méthodes permettant la manipulation...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...

1

 Duch, le 30 jan 2002 à 18:26:16
  • +4

En fait les String sont effectivement non modifiables. Cela signifie que :
String s1 = "toto";
s1 = s1 + "encore toto";
instancie une chaine s1 avec toto, puis une autre chaine qui est la concaténation de s1 et de "encore toto". Cette derniere chaine etant ensuite affectee a s1. Donc si on fait beaucoup de conatenation, on instancie beaucoup de chaines et ca prend du temps.
D'ou le StringBuffer qui lui est modifiable (on peut ajouter des caractères à un StringBuffer existant sans en recréer un autre).
Dans ce cas :
StringBuffer sb = "toto";
sb.append("encore toto");
String s1=sb.toString();
produira le même résultat que précédemment mais diminuera le nombre d'instanciations. Ce qui est d'autant plus vrai que l'on effectue beaucoup de concatenations.

Ensuite, un des interets des String est que si on a :
String s = "toto";
String s2 = s;
et plus loin
s = "toto2";
on est sûr que s2 garde la valeur "toto" puisque s1 référence une toute nouvelle chaine. Cela signifie que lorsque l'on fait des copies d'objets (par exemple), les chaines n'ont pas besoin d'etre recopiées en profondeur. Une affectation suffit.

Répondre à Duch