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?

  1. Integer.toString(i)
  2. new Integer(i).toString()
Ratkaisu

Integer.toString kutsuu luokan Integer staattista metodia. Se ei tarvitse Integerin instanssia.

Jos kutsut new Integer(i), luot tyypin Integer instanssin, joka on täysi Java-objekti, joka kapseloi int:n arvon. Sitten kutsut sen toString-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.

Kommentit (0)

new Integer(i).toString() luo ensin (tarpeettoman) wrapper-olion i ympärille (joka voi itse olla wrapper-olio Integer).

Integer.toString(i) on parempi, koska se ei luo tarpeettomia objekteja.

Kommentit (0)
  1. new Integer(i).toString();

Tämä lauseke luo kokonaisluvun objektin ja kutsuu sitten sen metodeja toString(i) palauttaakseen kokonaisluvun arvon merkkijonoesityksen.

  1. Integer.toString(i);

Se palauttaa String-olion, joka edustaa tiettyä int:tä (kokonaislukua), mutta tässä toString(int) on staattinen metodi.

Yhteenveto on, että ensimmäisessä tapauksessa se palauttaa objektin merkkijonoesityksen, kun taas toisessa tapauksessa se palauttaa kokonaisluvun merkkijonoesityksen.

Kommentit (1)