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

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  :-)

Notícias da UFSC » UFSC é segunda universidade brasileira melhor colocada no Webometrics

Notícias da UFSC » UFSC é segunda universidade brasileira melhor colocada no Webometrics : A Universidade Federal de Santa Catarina passou à segunda instituição brasileira melhor qualificada no  Ranking Web of World Universities , sendo a primeira universidade federal brasileira no levantamento . No primeiro lugar geral se mantém a USP. No ranking passado, publicado no mês de janeiro, a UFSC ocupava a quarta posição. Na classificação para a América Latina, em que figurava como quinta universidade,  passou a terceira colocada. E no ranking mundial está entre as cem universidades do mundo: subiu da 129ª posição para a 98ª. Harvard University, Massachusetts Institute of Technology e Stanford University se mantêm no topoda classificação mundial. Entre as brasileiras, lideram aUniversidade de São Paulo (USP), UFSC e Universidade Estadual de Campinas (Unicamp)

Serialização de objetos I - Salvando objetos em arquivos

Serialização: como salvar seus objetos Java par utilizar quando precisar  Serialização de objetos é a possibilidade de salvar uma cópia completa de um objeto ou de uma coleção de objetos em um fluxo de saída (arquivo externo), de modo que o objeto pode ser recriado a partir da cópia serializada  quando necessário . A serialização de objetos Java,  fornece um recurso para transformar um grupo ou um único objeto em um fluxo de bits, ou um array de bytes para armazenar ou enviar pela rede,  de modo que o  referido fluxo de bits ou uma matriz de bytes pode ser transformado novamente em objetos Java. O processo de serialização também é conhecido como marshaling de um objeto, e de-serialização é conhecido como un-marshaling. Assim a serialização oferece os seguintes benefícios: Um sistema para persistência de objetos, ou seja, escrever as suas propriedades em arquivos externos ou discos, ou salvá-las em um banco de dados. Um sistema para chamadas d...