Che cos'è Autoboxing e Unboxing in Java?
Un autoboxing:
L'autoboxing è una funzionalità in java che converte automaticamente il tipo di dati primitivo nell'oggetto della classe wrapper corrispondente. Ad esempio, convertire un int in un numero intero, un double in un double e così via.
L'esempio più semplice di autoboxing è:
Carattere ch = 'c'
dove la 'c' è un tipo primitivo (carattere) che viene automaticamente convertito nella classe wrapper corrispondente (carattere).
Dove questo potrebbe essere utile durante le pratiche di codifica?
L'autoboxing è utile con l'elenco (come ArrayList, LinkedList, ecc.). Prendiamo l'esempio di ArrayList.
Come sappiamo, ArrayList contiene solo un oggetto, non un tipo di dati primitivo, il che significa che possiamo memorizzare l'oggetto della classe wrapper ma non possiamo memorizzare il tipo di dati primitivo all'interno di un ArrayList. Ad esempio ArrayList<Integer> arr = new ArrayList<Integer>() ; questo è valido. Ma ArrayList<int> arr = new ArrayList<int>() ; questo non è valido.
Consideriamo lo snippet di codice scritto di seguito.
Sebbene aggiungiamo valori int come tipo primitivo, piuttosto che oggetti Integer, il codice viene compilato correttamente e non produce errori in fase di compilazione. Perché il compilatore JVM converte il codice precedente nel codice seguente:
In questo caso, la conversione del tipo primitivo int nella classe wrapper Integer durante l'operazione di aggiunta è denominata Autoboxing.
Spacchettamento :
Unboxing è una funzionalità in Java che converte automaticamente l'oggetto della classe wrapper nel tipo di dati primitivo corrispondente. Ad esempio, convertire un Integer in un int, un Double in un double e così via.
L'unboxing è il processo inverso dell'autoboxing.
Dove questo potrebbe essere utile durante le pratiche di codifica?
L'unboxing aiuta i programmatori, in quanto semplificherà l'esecuzione di alcune operazioni come le operazioni aritmetiche sulla struttura dei dati che memorizzano l'oggetto della classe wrapper come List. Per un esempio:
Sebbene i valori memorizzati all'interno di una lista (arr) siano di tipo Integer, mentre aggiungiamo tali valori alla variabile di tipo int total, i valori Integer vengono automaticamente convertiti in int. Il che renderà facile per un programmatore eseguire operazioni aritmetiche.
Il codice viene compilato correttamente e non produce errori in fase di compilazione. Perché il compilatore JVM converte il codice precedente nel codice seguente:
Qui, la conversione di int (tipo primitivo) in Integer (oggetto classe Wrapper) è chiamata Unboxing.
La tabella seguente è utile in quanto mostra il tipo di dati primitivo con la classe wrapper corrispondente.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































