Néha a java zavarba hoz.
Rengeteg int inicializálást kell elvégeznem.
Mi a igazi különbség?
Integer.toString(i)
new Integer(i).toString()
Az Integer.toString
meghívja az Integer
osztály statikus módszerét. Nincs szüksége az Integer
példányára.
Ha meghívod a new Integer(i)
metódust, akkor létrehozol egy Integer
típusú példányt, ami egy teljes Java objektum, amely az int értékét foglalja magába. Ezután meghívjuk rajta a toString
metódust, hogy megkérjük, hogy adja vissza önmagának egy string reprezentációját.
Ha csak egy int
értéket akarsz kiírni, akkor az elsőt használd, mert ez könnyebb, gyorsabb és nem használ extra memóriát (a visszaadott stringtől eltekintve).
Ha egy egész értéket reprezentáló objektumot akarsz - például egy gyűjteménybe helyezni -, akkor a másodikat használod, mivel ez egy teljes értékű objektumot ad, amellyel mindenféle olyan dolgot megtehetsz, amit a puszta int
-vel nem tudsz.
A new Integer(i).toString()
először létrehoz egy (redundáns) burkoló objektumot i
körül (amely maga is lehet egy burkoló objektum Integer
).
Az Integer.toString(i)
azért előnyösebb, mert nem hoz létre felesleges objektumokat.
new Integer(i).toString();
Ez az utasítás létrehozza az Integer objektumot, majd meghívja annak toString(i)
metódusait, hogy visszaadja az Integer'értékének String reprezentációját.
Integer.toString(i);
Ez visszaadja az adott int (egész szám)ot reprezentáló String objektumot, de itt a toString(int)
egy statikus
metódus.
Összefoglalva, az első esetben az objektum string reprezentációját adja vissza, míg a második esetben az egész szám string reprezentációját.