• [^] # Re: 100% D'accord ... sauf ;)

    Posté par (site web personnel) . En réponse à la dépêche Java Virtual Machine 1.4.2 beta. Évalué à 2.

    Je pense que tu fais erreur, le compilo ne crée pas un StringBuffer mais fait simplement appelle à la methode concat(String str): String:
    String a = "test";
    String str = "un "+a;


    Dans cet exemple la, un compilateur intelligent creera un String str initialisé a "un test" à la compilation.
    Sinon, s'il se peut qu'il y ai une operation sur a visant à le modifier avant de creer str, alors l'operation se resume a creer un tableau de char de longueur a.length()+str.length(), y copier les caracteres de chaque chaines et de retourner une nouvelle chaine à partir du tableau de caracteres.

    Bref, pas de StringBuffer dans tous les cas.

    PS: Voir methode concat dans le code source de java/lang/String.