Java int naar String - Integer.toString(i) vs new Integer(i).toString()
Soms verbaast java me.
Ik heb een enorme hoeveelheid int initialisaties te maken.
Wat is het echte verschil?
Integer.toString(i)
new Integer(i).toString()
419
3
Integer.toString
roept de statische methode in de klasseInteger
aan. Het heeft geen instantie vanInteger
nodig.Als je
new Integer(i)
aanroept, maak je een instantie van het typeInteger
, dat een volledig Java-object is dat de waarde van je int inkapselt. Dan roep je detoString
methode aan om te vragen een string representatie van zichzelf terug te geven.Als alles wat je wilt is een
int
afdrukken, zou je de eerste gebruiken omdat het lichter en sneller is en geen extra geheugen gebruikt (afgezien van de geretourneerde string).Als u een object wilt dat een gehele waarde vertegenwoordigt - om het bijvoorbeeld in een verzameling te zetten - zou u de tweede gebruiken, omdat het u een volwaardig object geeft om allerlei dingen te doen die u niet met een kale
int
kunt doen.new Integer(i).toString()
maakt eerst een (overbodig) wrapper object rondi
(dat zelf een wrapper objectInteger
kan zijn).Integer.toString(i)
heeft de voorkeur omdat het geen onnodige objecten aanmaakt.new Integer(i).toString();
Dit statement maakt een object van een Integer en roept dan zijn methodes
toString(i)
op om de String representatie van de waarde van Integer'terug te geven.Integer.toString(i);
Het retourneert het String object dat de specifieke int (geheel getal) vertegenwoordigt, maar hier is
toString(int)
eenstatische
methode.In het eerste geval geeft het de string-weergave van het object, in het tweede geval geeft het de string-weergave van het gehele getal.