Java int to String - Integer.toString(i) vs new Integer(i).toString()
A volte java mi lascia perplesso.
Ho una quantità enorme di inizializzazioni int da fare.
Qual è la differenza reale?
Integer.toString(i)
new Integer(i).toString()
419
3
Integer.toString
chiama il metodo statico nella classeInteger
. Non ha bisogno di un'istanza diInteger
.Se chiamate
new Integer(i)
create un'istanza del tipoInteger
, che è un oggetto Java completo che incapsula il valore del vostro int. Poi chiamate il metodotoString
su di esso per chiedergli di restituire una rappresentazione stringa di sé stesso.Se tutto quello che vuoi è stampare un
int
, dovresti usare il primo perché è più leggero, più veloce e non usa memoria extra (a parte la stringa restituita).Se volete un oggetto che rappresenti un valore intero - per metterlo all'interno di una collezione, per esempio - userete il secondo, perché vi dà un oggetto completo per fare tutte le cose che non potete fare con un semplice
int
.new Integer(i).toString()
crea prima un oggetto wrapper (ridondante) intorno ai
(che a sua volta può essere un oggetto wrapperInteger
).Integer.toString(i)
è preferito perché non crea alcun oggetto non necessario.new Integer(i).toString();
Questa dichiarazione crea l'oggetto Integer e poi chiama i suoi metodi
toString(i)
per restituire la rappresentazione Stringa del valore di Integer.Restituisce l'oggetto String che rappresenta lo specifico int (integer)**, ma qui
toString(int)
è un metodostatico
.Riassumendo, nel primo caso restituisce la rappresentazione stringa dell'oggetto, mentre nel secondo caso restituisce la rappresentazione stringa dell'intero.