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?

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

Integer.toString chiama il metodo statico nella classe Integer. Non ha bisogno di un'istanza di Integer.

Se chiamate new Integer(i) create un'istanza del tipo Integer, che è un oggetto Java completo che incapsula il valore del vostro int. Poi chiamate il metodo toString 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.

Commentari (0)

new Integer(i).toString() crea prima un oggetto wrapper (ridondante) intorno a i (che a sua volta può essere un oggetto wrapper Integer).

Integer.toString(i) è preferito perché non crea alcun oggetto non necessario.

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

  1. Integer.toString(i);`

Restituisce l'oggetto String che rappresenta lo specifico int (integer)**, ma qui toString(int)è un metodo statico.

Riassumendo, nel primo caso restituisce la rappresentazione stringa dell'oggetto, mentre nel secondo caso restituisce la rappresentazione stringa dell'intero.

Commentari (1)