Objetivos
Casting
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.
Conversões envolvendo tipos numéricos, booleanos e strings podem ser vistas em
Java: Conversão com mais detalhes.
Casting implícito
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_de_dado_destino nome_variavel = (tipo_de_dado_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 |
Histórico de atualizações
- 22/07/2025 - revisão 3 - ajustes pontuais
- 23/09/2024 - revisão 2 - ajustes pontuais
- 06/02/2024 - revisão 1 - correção em navegação e erros gramaticais
- 04/09/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.