Differenze tra int ed Integer in Java

0 Flares 0 Flares ×

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 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 qua 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 (da mindprod.com) che spiega le differenze:

tabella comparativa tra il dato di tipo Int ed Integer in Java
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.


0 Flares Facebook 0 Twitter 0 Google+ 0 LinkedIn 0 Email -- 0 Flares ×
  • Max

    spiegato in modo semplice, efficace e completo.
    complimenti!

  • Io

    seè ròootto

0 Flares Facebook 0 Twitter 0 Google+ 0 LinkedIn 0 Email -- 0 Flares ×