I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
repsak >> ved ikke om du kan appende på den måde - i hvert fald (hvis det virker), så er den møg-u-effektiv, da du hele tiden oprettet et nyt StringObjekt ... Hvis man ved, at man har en String, som der løbende skal ændres/tilføjes noget til, så bør man bruge StringBuffer...
riversen >> det kan jeg jo egenligt godt se nu :-)) .. men det afholder mig dog ikke fra at sige, at "String=String+String"-appending er en resource-sluger i forhold til en StringBuffer :-)
men int'en bliver også konveret til en string et eller andet sted, men hvordan det foregår har jeg ikke tjekket nærmere. Så vigtigt er det vist heller ikke :-)
toString( int, 10 ) kalder toString( int ) hvis radix er 10 (hvilket den jo er :-)
Og den kode er en værre mobbedreng :
public static String toString(int i) { int q, r, charPos; charPos = 12 ; char buf [] = new char [charPos] ; char sign = 0 ;
if (i == Integer.MIN_VALUE) { return "-2147483648"; } if (i < 0) { sign = '-' ; i = -i ; }
// Generate two digits per iteration while ( i >= 65536 ) { q = i / 100 ; // really: r = i - (q * 100) ; r = i - ((q << 6) + (q << 5) + (q << 2)) ; i = q ; buf [--charPos] = DigitOnes [r] ; buf [--charPos] = DigitTens [r] ; }
// Fall thru to fast mode for smaller numbers // assert(i <= 65536, i); for (;;) { q = (i * 52429) >>> (16+3) ; r = i - ((q << 3) + (q << 1)) ; // r = i-(q*10) ... buf [--charPos] = digits [r] ; i = q ; if (i == 0) break ; } if (sign != 0) { buf [--charPos] = sign ; }
// Use the back-door private constructor -- we abandon the // char []. This requires that we drop the "private" from the // java.lang.String: String (int Offset,int Count,char[] // Value) constructor.
jakoba >> jeg må indrømme at jeg ikke ved det --- for i modsætning til f.eks. C++ , hvor man kan gå ind og "se/ændre kode for '+'-operatoren, så ved jeg ikke hvordan Java, rent kodemæssigt, gør det
Hvad jeg ved er, at det så bliver StringBuffer.append( String ) som bliver kaldt
Hvad der sker i kaldene/processen fra ""+int til String ved jeg ikke -
Man kunne forestille sig, at den først opretter strengen "" og derefter bruger concat metoden til at føje int'en på - men det er ren spekulation
/Søren
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.