OVH Cloud OVH Cloud

Prodigieux type String

11 réponses
Avatar
Julien Arlandis
System.out.println("début");

String toto = "";

for(int i=0;i<100000;i++) toto += "a";

System.out.println("fin");


Sur ma machine cadencée à 2,4 Ghz 1 minute s'écoule entre l'affichage de
"début" et "fin" !!! Pourquoi le type String est il si lent en java?

1 réponse

1 2
Avatar
vclassine
ZeGrunt wrote in message news:<4021efcb$0$278$...
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Salut.

LR wrote:
Le type string est un savant mélange d'objet et de primitif. Lorsque
tu fais

toto+="a", c'est pareil que si tu faisais toto = new String( toto+ "a" ).


Tiens, je croyais que toto+="a" était plus ou moins traduit par :
toto = (new StringBuffer(toto)).append("a").toString()

J'ai tort ? Si oui, quelle est la véritable "traduction" ?


pour le '+=' je ne sais pas, en tout cas je crois que tu as raison
(dans le principe) pour le + tout court...

Reste que si on code bien on fait

1 new StringBuffer(toto);
xxx append("a") ou mieux append('a')
1 toString

La différence est là...


Merci,

ZeGrunt.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD4DBQFAIe/LnLjyGhlEgFIRAtt2AJjH0Y8k4bZH9e7DClYPJ+N1li+kAJoDZ1Ps
KC5RPo6piKTanmdXDK6rMA= > =fXpq
-----END PGP SIGNATURE-----



1 2