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.