Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Casting implícito
  2. Sinalização
  3. Casting explícito
  4. Autoboxing e unboxing
  5. Tabela de perda de dados

A linguagem Java nos permite realizar a conversão básica(casting) dos tipos de dados primitivos e outros. Nesta parte do tutorial vamos ver o casting implícito e explícito de tipos númericos inteiros. Autoboxing e auto-unboxing também serão vistos.

Conversões envolvendo tipos numéricos, booleanos e strings podem ser vistas em Java: Conversão com mais detalhes.

No casting implícito, sem perda de dados, a linguagem Java não realiza nenhuma validação convertendo automaticamente de uma tipo de dado de menor capacidade de armazenamento para uma tipo de dado maior capacidade.

Sintaxe
long int < int < short < char
Onde
<: Sentido da conversão. 
Exemplo 1
public class MyClass {
    public static void main(String args[]) {
    
    int a;
    short b= 256;
    a = b;
    
    System.out.println(a);
    System.out.println(b);
    
    }
}
Saída
256
256

Para o casting de números sinalizados de menor tamanho para sinalizados de maior tamanho, a sinalização é mantida. A conversão é feita internamente sem que haja a necessidade de intervenção de código.

Exemplo 2
public class MyClass {
    public static void main(String args[]) {
    
    int a;
    short b= -256;
    a = b;
    
    System.out.println(a);
    System.out.println(b);
    
    }
}
Saída
-256
-256

No casting explícito, o tipo de dados de destino é informado manualmente. A expressão é validada e convertida para o tipo de dado informado como destino. Nesse tipo de casting, há perda de dados.

Sintaxe : perda de dados
long int > int > short > char
Sintaxe : casting
tipo_destino nome_variavel = (tipo_destino)expressao;
Exemplo 5
public class MyClass {
    public static void main(String args[]) {
    
    int a = 256; //4 bytes
    byte b; //1 byte
    b = (byte)a; //4 bytes > 1 byte
    
    System.out.println(a);
    System.out.println(b);
    
    }
}
Saída
256
0

No casting discutido acima, com perda de dado, e de acordo com os tipos de dados estudados, temos como exemplo a relação das seguintes perdas:

Origem Tamanho(bytes) Destino Tamanho(bytes) Dados perdidos(bytes)
long int 8 int 4 4
int 8 short 2 2
short 8 byte 1 1
long double 8 double 8 8
long float 8 float 4 4

Um Java, autoboxing e auto-unboxing, de forma resumida, diz respeito à conversão entre os tipos primitivos e suas classes.

Sintaxe : autoboxing
objeto_integer = valor_primitivo;
Sintaxe : auto-unboxing
valor_primitivo = objeto_integer;
Exemplo 6
public class Main
{
	public static void main(String[] args) {
		
		//autoboxing
        int valorPrimitivo = 10;
        Integer objetoInteger = valorPrimitivo; //Integer <- int
        
        System.out.println(valorPrimitivo);
        System.out.println(objetoInteger);
        
        //auto-unboxing
        objetoInteger = 11;
        valorPrimitivo = objetoInteger; //int <- Integer
        
        System.out.println(valorPrimitivo);
        System.out.println(objetoInteger);
	}
}
Saída
10
10
11
11
  1. 28/11/2025 - revisão 4 - Adição: autoboxing e auto-unboxing
  2. 22/07/2025 - revisão 3 - ajustes pontuais
  3. 23/09/2024 - revisão 2 - ajustes pontuais
  4. 06/02/2024 - revisão 1 - correção em navegação e erros gramaticais
  5. 04/09/2023 - versão inicial