Site icon ZoomingIn

Differenze tra int ed Integer nel Linguaggio Java

Qual è la differenza che si trova tra int ed Integer in java?

Una delle cose che crea confusione ai programmatori Java alle prime armi, era la differenza che c’è tra int ed Integer.

C’è da dire che per capire veramente questa differenza, sarebbe necessario leggere un libro introduttivo su Java.
Se siete arrivati qui significa che lo volete sapere in maniera un po’ sbrigativa!
Innanzitutto iniziamo col dire che la stessa differenza la troviamo anche tra char e Character, short e Short, long e Long, float e Float, double e Double.

Definizioni

Un int è un primitivo, Non si tratta di un oggetto.
Un int può essere utilizzato per calcolare i numeri interi compresi tra:

-2,147,483,648 e +2,147,483,647.

Come sappiamo un int sono 32 bit di informazione. Il valore che assume una variabile dichiarata come int può essere modificata nel corso del programma, ogni volta che lo si ritiene opportuno.
Vediamo adesso l’altro oggetto: l’Integer. Ora abbiamo a che fare con un oggetto.
Al suo interno l’Integer contiene un campo intero. È più grande rispetto ad un int; in termini semplici potremmo pensare che l’ Integer è qualcosa che assomiglia ad un contenitore con un int.

Ma qual è la differenza allora?
L’Integer è immutabile: l’unico modo per cambiargli il valoreè quello di creare un nuovo oggetto Integer per mezzo del comando

new Integer

Usare int oppure Integer?

Detta così sembrano quasi equivalenti, anzi sembra che l’Integer è una versione più complicata dell’int.In realtà però le cose non stanno proprio così.
Tutto dipende da che cosa vogliamo farci. Ecco una tabella che spiega le differenze:


Per passare da int ad Integer e viceversa è semplice:

// per passare ad int i partendo da un Integer ii
int i = ii.intValue();

 

// passare ad un Integer ii a partire da un int i
Integer ii = new Integer( i );

A partire da Java 1.5 il compilatore grazie alla funzionalità di autoboxing è in grado di convertire automaticamente i valori della variabile da int ad Integer, insomma potreste quasi pensare di utilizzare int e Integer allo stesso modo.

Exit mobile version