nå, nej, nej, det var ikke for at starte en diskussion om grim/pæn kode...
hvis man har en int, er det
String str = Integer.toString(myint);
mit punkt 2) Her er det ikke spørgsmålet om compileren godtager det, men om den kan optimere det.
Problemet med String tekst = \"\" + tal;
er, at det faktisk bliver lavet om til:
Stringbuffer sb = new StringBuffer(); String tmp1 = \"\"; String tmp2 = Integer.toString(tal); sb.append(tmp1); sb.append(tmp2); String tekst = sb.toString();
Det er altså ikke særlig smart, med mindre compileren genkender hack\'et og direkte indsætter \"den rigtige\":
String tekst = Integer.toString(tal);
Man ser tit den der \"\" + tal, og det er oplagt at compileren kan kigge efter dem, men det kan man bare ikke gå ud fra, og jeg synes lige jeg ville gøre opmærksom på hvad der sker.
agermose >> Et spm til: Integer.toString(myint); går jo også gjennom noen linjer kode ( toString() )? _Er_ det egentlig mer optimert enn \"\" + myint??
Den konvertering fra en int til en string der foregår ved en Integer.toString() kan man ikke komme uden om. Pointen er bare at det også er et skridt i \"\" + myint, men at der ved den sidste også foregår en del andre ting. Jeg mener, som skrevet, at \"\" + myint, uoptimeret bliver noget i retning af de 6 statements bygget op omkring en stringbuffer. Statement 3 er nettop Integer.toString(), hvorfor de andre må siges at være spildt.
Og ja, StringBuffer har en append(int) - men mon ikke den svare til append(Integer.toString(int));
Der findes dokumentation, der præcist beskriver hvad der bliver lavet om til hvad. Jeg er ikke bekendt med alle detaljer heri!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.