java-数据类型转换

数据类型转换

当数据类型不一致时,会发生数据类型转换

自动类型转换(隐式)

  1. 特点:代码不需要进行特殊处理,自动完成转换
  2. 规则:数据范围从小到大(即赋值符号右面的数据类型范围要小于赋值符号左面的数据类型)
  3. public class HelloWorld{
        public static void main (String[] args){
            System.out.println(123);//这是一个整数,默认是int类型
            System.out.println(3.14);//这是一个小数,默认是double类型
            
            long num1=100;
            System.out.println(num1);
            
            double num2=2.5F;
            System.out.println(num2);
            
            float num3=30L;
            System.out.println(num3);
        } 
    }
    D:javatest>javac -encoding "UTF-8" HelloWorld.java
    
    D:javatest>java HelloWorld
    123
    3.14
    100
    2.5
    30.0
    
    D:javatest>

强制类型转换(显式)

  1. 特点:代码需要进行特殊处理,不能自动完成转换
  2. 格式:范围小的数据类型 变量名=(范围小的数据类型)范围大的数据
  3. public class HelloWorld{
        public static void main (String[] args){
            int num1=(int)100L;
            System.out.println(num1);
        } 
    }
    D:javatest>javac -encoding "UTF-8" HelloWorld.java
    
    D:javatest>java HelloWorld
    100

注意事项

  1. 强制类型转换一般不推荐使用,因为有可能出现精度损失、数据溢出
  2. byte、short、char这三种数据类型都可以发生数据运算
  3. byte、short、char这三种数据类型在参与数据运算时,都会首先提升成int类型
  4. boolean类型不能进行数据运算
  5. public class HelloWorld{
        public static void main (String[] args){
            //将long类型强制转换成int类型
            int num1=(int)6000000000L;
            System.out.println(num1);//结果:1705032704,导致数据溢出
            
            //将float类型强制转换成int类型
            int num2=(int)3.99F;
            System.out.println(num2);//结果是:3,导致数据精度损失
            
            char var1='A';
            System.out.println(var1+1);//结果是66
            
            byte num3=30;
            byte num4=50;
            int a=num3+num4;
            System.out.println(a);
            
            short num5=200;
            short b=(short)(num3+num5);
            System.out.println(b);
        } 
    }
    D:javatest>java HelloWorld
    1705032704
    3
    66
    80
    230
    
    D:javatest>

 

原文地址:https://www.cnblogs.com/jingdenghuakai/p/12326871.html