Lisää
Java int to String - Integer.toString(i) vs new Integer(i).toString()
Joskus java hämmentää minua.
Minulla on valtava määrä int-alkukirjauksia tehtävänä.
Mikä on todellinen ero?
Integer.toString(i)
new Integer(i).toString()
419
3
Integer.toString
kutsuu luokanInteger
staattista metodia. Se ei tarvitseIntegerin
instanssia.Jos kutsut
new Integer(i)
, luot tyypinInteger
instanssin, joka on täysi Java-objekti, joka kapseloi int:n arvon. Sitten kutsut sentoString
-metodia pyytämään sitä palauttamaan merkkijonoesityksen itsestään.Jos haluat vain tulostaa
int
:n, käytät ensimmäistä tapaa, koska se on kevyempi ja nopeampi eikä käytä ylimääräistä muistia (palautetun merkkijonon lisäksi).Jos haluat kokonaislukuarvoa esittävän objektin - esimerkiksi sijoittaaksesi sen kokoelmaan - käytät toista, koska se antaa sinulle täysimittaisen objektin, jolla voit tehdä kaikenlaista, mitä et voi tehdä pelkällä
int
-arvolla.new Integer(i).toString()
luo ensin (tarpeettoman) wrapper-olioni
ympärille (joka voi itse olla wrapper-olioInteger
).Integer.toString(i)
on parempi, koska se ei luo tarpeettomia objekteja.new Integer(i).toString();
Tämä lauseke luo kokonaisluvun objektin ja kutsuu sitten sen metodeja
toString(i)
palauttaakseen kokonaisluvun arvon merkkijonoesityksen.Integer.toString(i);
Se palauttaa String-olion, joka edustaa tiettyä int:tä (kokonaislukua), mutta tässä
toString(int)
onstaattinen
metodi.Yhteenveto on, että ensimmäisessä tapauksessa se palauttaa objektin merkkijonoesityksen, kun taas toisessa tapauksessa se palauttaa kokonaisluvun merkkijonoesityksen.