• [^] # Re: C'est un troll.

    Posté par . En réponse à la dépêche Mono 1.0 sous le feu des projecteurs. Évalué à 1.

    Guillaume a effectivement raison en ce qui concerne le coût de concaténation d'une string en java. Un simple coup d'oeil au bytecode montre que Java utilise des stringbuffers pour la concaténation et si ce procédé est bien plus rapide que celui qui était utilisé avant (création d'une nouvelle string à chaque concaténation car les strings sont "immutable"), il n'empêche que ça reste un procédé très couteux :

    - StringBuffer est un tableau d'une taille défini par défaut à 16 caractères et chaque "append()" peut potentiellement povoquer une "expansion" du tableau d'origine avec les couts d'un appel à arraycopy().

    - Le principe d'expansion du StringBuffer est assez rudimentaire, en gros doublement de la capacité initiale à chaque fois ce qui fait que pour une simple String on peut avoir un espace mémoire assez conséquent utilisé.

    - On crée toujours 2 objets, un procédé qui reste couteux en Java.

    Bref, au niveau lisibilité ce n'est pas forcement terrible et ça reste couteux. Personnellement je pense qu'un printf() pourrait être intéressant.