Mai mult
Java int a String - număr Întreg.toString(eu) vs new Integer(i).toString()
Uneori java puzzle-uri cu mine. Am si eu o mare cantitate de int initializare a face.
Ce's a real diferența?
Întreg.toString(i)
new Integer(i).toString()
419
11
Întreg.toString
recomandă metoda statică din clasaInteger
. Ea nu are nevoie de un exemplu de "Întreg".Dacă te sun
new Integer(i)
creați o instanță de tip "Întreg", care este un obiect Java care conține valoarea de int. Apoi te suntoString
metoda pe el să-l întreb pentru a returna o reprezentare șir de sine.Dacă tot ce vrei este de a imprima un
int
, ai'd folosi în primul rând pentru că's mai ușor, mai rapid și nu't utilizarea de memorie suplimentare (în afară de întors string).Dacă doriți ca un obiect care reprezintă o valoare întreagă—să-l pună într-o colecție de exemplu—ai'd folosi cel de-al doilea, deoarece oferă un obiect cu drepturi depline pentru a face tot felul de lucruri pe care le pot face cu un gol
int
.new Integer(i).toString()
creează mai întâi o (redundante) obiect înveliș în jurul valorii de " eu "(care în sine poate fi un obiect înveliș "Întreg").Întreg.toString(i)
este de preferat pentru că nu't crea orice obiecte inutile.O altă opțiune este static
Șir de caractere.valueOf
metoda.Simte ** puțin mai bine decât Întreg.toString(i) pentru mine. Atunci când tipul de i se schimbă, de exemplu, de la
int
la "dublu", codul va rămâne corectă.new Integer(i).toString();
Această declarație creează obiectul Întreg și apoi apela metode
toString(i)
a reveni reprezentarea Șir de Întreg's valoare.Întreg.toString(i);
L a se întoarce la obiect String care reprezintă specifice int (integer), dar aici toString(int)` este un "statice" metoda.
Rezumat este în primul caz se revine la obiecte string reprezentare, în timp ce în al doilea caz, se întoarce reprezentarea șir de număr întreg.
De asemenea, am foarte recomandăm să utilizați
Simplu și eficient.
Deși îmi place fhucho's de recomandare
Ironia este că această metodă, de fapt, apelurile
Astfel, folosesc Șir.valueOf(i)
dacă vă place cum se citește și tu nu't nevoie radix, dar, de asemenea, știind că acesta este mai puțin eficientă decât Întreg.toString(i)
.În termeni de măsurare a performanței, dacă aveți în vedere timpul de performanță apoi număr Întreg.toString(i); este scump, dacă sunteți de asteptare de mai puțin de 100 de milioane de ori. Altfel, dacă este mai mult de 100 de milioane de apeluri atunci new Integer(10).toString() se va efectua mai bine.
Mai jos este codul prin u pot încerca pentru a măsura performanța,
În termeni de memorie,
va avea mai multă memorie ca se va crea un obiect, de fiecare dată, atât de fragmentarea de memorie se va întâmpla.
Mai bine:
Simplu mod este de doar înlănțui `"" cu întreg:
acum " s " va fi
100
ca valoare șir.Aici
Întreg.toString
apeluri metoda statică din clasa Integer. Ea nu are nevoie de obiect pentru a apela.Dacă suni new Integer(i)
vă creați mai întâi un exemplu de tip Întreg, care este un obiect Java care conține valoarea int i. Apoi te sun
toString` metoda pe el să-l întreb pentru a returna o reprezentare șir de sine.1.
Număr întreg.toString(i)
2.
new Integer(i).toString()