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?

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

Integer.toString roept de statische methode in de klasse Integer aan. Het heeft geen instantie van Integer nodig.

Als je new Integer(i) aanroept, maak je een instantie van het type Integer, dat een volledig Java-object is dat de waarde van je int inkapselt. Dan roep je de toString 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.

Commentaren (0)

new Integer(i).toString() maakt eerst een (overbodig) wrapper object rond i (dat zelf een wrapper object Integer kan zijn).

Integer.toString(i) heeft de voorkeur omdat het geen onnodige objecten aanmaakt.

Commentaren (0)
  1. 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.

  1. Integer.toString(i);

Het retourneert het String object dat de specifieke int (geheel getal) vertegenwoordigt, maar hier is toString(int) een statische 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.

Commentaren (1)