Pular para o conteúdo principal

Autoboxing e unboxing em Java , o que é e como funciona?

Esse é um recurso que está disponível na linguagem java desde a versão 5 , na verdade já uso essa feature da linguagem mas nem sabia :-)

O que é autoboxing and unboxing ?

O autoboxing é quando o java converte automaticamente para você um tipo primitivo, como por exemplo um numero int , em um objeto Integer. O unboxing é exatamente o contrario é quando a partir de um objeto, por exemplo um Integer podemos acessar automaticamente o tipo primitivo correspondente um numero int.  Neste exemplo estamos usando o tipo primitivo int mas o mesmo vale para os outros tipos primitivos byte, short, char, int, long, float, double and boolean.

Pontos importantes !!


1) O compilador usa o método ValueOf( ) para realizar o autoboxing , ou seja converter um tipo primitivo em Objeto correspondente.

2) Da mesma forma o compilador usa o método intValue( ) , doubleValue( ) , etc , para obter de um objeto o tipo primitivo , ou seja um unboxing.

3) Durante o autoboxing o int é convertido para um Integer, o float para Float, o double para Double , e assim sucessivamente .  No unboxing acontece o contrario.

4) Você não precisa mais usar nenhum desse métodos, o compilador faz isso para você.

Exemplos de autoboxing:


 ArrayList <Integer> intList = new ArrayList <Integer> ();  
 intList.add(1); //autoboxing - tipo primitivo para Objeto  
 intList.add(2); //autoboxing  

Note que antes do advento do autoboxing  você tinha que fazer a conversão manualmente antes de colocar os objetos no Arraylist. Neste caso nosso exemplo ficaria da seguinte maneira .

 ArrayList <Integer> intList = new ArrayList <Integer> ();  
 Integer integer1, integer2;  
 integer1.valueOf(1);  
 integer2.valueOf(2);  
 intList.add( integer1);   
 intList.add(integer2);   

Bem mais trabalhoso né?

Exemplos de unboxing:


 ArrayList <Integer> intList = new ArrayList <Integer> ();  
 intList.add(1); //autoboxing   
 intList.add(2); //autoboxing  
 numero1 = intList.get(0); //unboxing - converte o objeto Integer para   
                     //o tipo primitivo int  
 numero 2 = intList.get(1);  

bem mais fácil ?

Fonte: baseado no artigo What is Autoboxing and Unboxing in Java:
http://javarevisited.blogspot.sg/2012/07/auto-boxing-and-unboxing-in-java-be.html


Comentários

Postagens mais visitadas deste blog

Projetos em Sala de aula

A educação baseada em projetos vem sendo usada como uma metodologia poderosa para melhor preparar estudantes do século 21, já que leva os alunos a trabalhar em conjunto, se organizar, pesquisar e executar harmonicamente. Porém, antes de levar a metodologia para a sala de aula, será que os professores sabem como e quais projetos trabalhar em suas disciplinas? Uma dessas novidades é o  PBLU (Project Based Learning University ), plataforma gratuita que ajuda a capacitar professores para o uso de projetos em suas disciplinas, como uma forma de agregar conteúdo e motivar os estudantes. Conheça os oito pontos principais para um bom programa de aprendizagem baseada em projeto: Ter conteúdo relevante.   O objetivo da abordagem é trabalhar os conceitos-chave das disciplinas acadêmicas a partir de um projeto. Desenvolver habilidades para o século 21.   Ao longo do projeto, os alunos deverão buscar uma resposta a um problema. Para isso, eles deverão buscar referências...

Video Aulas de Java já disponíveis no 4Shared

Turma segue as video aulas já disponíveis para download no 4Shared , espero que vocês gostem das aulas e por favor postem um comentario no blog dizendo o que vc's acharam preciso desse feed back para o constante aprimoramento das aulas . Basta escolher o arquivo clickar  no link para download ( tenha paciencia os arquivos são grandes ) <p>&lt;p&gt;&amp;amp;amp;amp;lt;p&amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br&amp;amp;amp;amp;amp;amp;amp;gt;se&amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;gt;&lt;/p&gt;</p> Se a Janela de Download acima não funcionar tente acessar os arquivos usando o seguinte link http://www.4shared.com/dir/34812571/bf01348d/VideoAulas.html Bom estudo  :-)

Sistemas distribuidos: Enviando mensagens TCP Parte II - Servidor

Igual ao servidor UDP esse servidor só vai receber a mensagem e envia-la de volta , ou seja é um servidor de ECO mas com boa vontade basta fazer algumas alterações que vc tem um servidor de chat :-) . Server TCP: import java.net.*; import java.io.*; public class TCPServer { public static void main(String[] args) { try { int serverPort = 7896; ServerSocket listenSocket = new ServerSocket(serverPort); //socket de escuta o socket que vai atender as requisições while(true){ Socket client = listenSocket.accept( ); Connection c = new Connection(client); //precisamos criar a classe conection que vai //inicializar nossas threads para atender a cada requisição } } catch (IOException e) { System.out.println("Listem :" + e.getMessage( )); } }//fim do main }//fim da classe Depois de fin...