O que é Autoboxing e Unboxing em java?
Um autoboxing:
Autoboxing é um recurso em java que converte automaticamente o tipo de dados primitivo no objeto de classe wrapper correspondente. Por exemplo, converter um int em Integer, um double em Double e assim por diante.
O exemplo mais simples de autoboxing é:
Caractere ch = 'c'
onde o 'c' é um tipo primitivo (char) que é automaticamente convertido para a classe wrapper correspondente (Character).
Onde isso pode ser útil durante as práticas de codificação?
O autoboxing é útil com a lista (como ArrayList, LinkedList, etc.). Vamos pegar o exemplo de ArrayList.
Como sabemos, o ArrayList contém apenas um objeto, não um tipo de dados primitivo, o que significa que podemos armazenar o objeto da classe wrapper, mas não podemos armazenar o tipo de dados primitivo dentro de um ArrayList. Por exemplo ArrayList<Integer> arr = new ArrayList<Integer>() ; isso é válido. Mas ArrayList<int> arr = new ArrayList<int>() ; isso não é válido.
Vamos considerar o trecho de código escrito abaixo.
Embora adicionemos valores int como um tipo primitivo, em vez de objetos Integer, o código compila com sucesso e não produz erro de tempo de compilação. Porque o compilador JVM converte o código anterior no seguinte código:
Aqui, a conversão do tipo primitivo int para a classe wrapper Integer durante a operação de adição é chamada de Autoboxing.
Desempacotando:
Unboxing é um recurso em java que converte automaticamente o objeto de classe wrapper no tipo de dados primitivo correspondente. Por exemplo, converter um Integer em um int, um Double em um double e assim por diante.
Unboxing é o processo inverso do Autoboxing.
Onde isso pode ser útil durante as práticas de codificação?
O unboxing ajuda os programadores, pois facilitará a execução de algumas operações, como operações aritméticas na estrutura de dados que armazenam o objeto de classe wrapper, como List. Por exemplo :
Embora os valores armazenados dentro de uma lista (arr) sejam do tipo Integer, enquanto adicionamos esses valores à variável do tipo int total, os valores Integer são convertidos automaticamente para int. O que tornará mais fácil para um programador realizar operações aritméticas.
O código compila com sucesso e não produz erro de tempo de compilação. Porque o compilador JVM converte o código anterior no seguinte código:
Aqui, a conversão de int (tipo primitivo) para Integer (objeto da classe Wrapper) é chamada de Unboxing.
A tabela a seguir é útil, pois mostra o tipo de dados primitivo com sua classe wrapper correspondente.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)