菜鸡的Java课笔记第三

自动转换原则

  数据范围保存大的数据类型要转换为数据范围保存小的数据类型,使用强制转换(强制转型就是在变量的前面加括号,在括号里写上需要强制要转的类型。)

  数据范围保存小的数据类型可以自动转换为数据范围大的数据类型

 //如果数据的大小没有超过byte/short/char的表述范围,则可以自动转型。
char c4 = 'a';
 int i = c4 + 2;
 char c5 = (char)i; // 强制转型
 System.out.println(c5);
 
 int a5 = 10;
 long a6 = 200;
 byte b2 = 100; //如果数据的大小没有超过byte/short/char的表述范围,则可以自动转型。
//测试自动转型和强制转型 
public class TestCast {
    
    public static void main(String[] args){
    /*    
        byte b = 123;
        //byte b2 = 300;
        //char c = -3;                                             
        char c2 = 'a';
        int i = c2;
        long d01 = 123213;
        float f = d01;
        System.out.println(f);    //123213.0
        System.out.println(i);  //97
        
        //测试强制转型
        int i2 = -100;
        char c3 = (char)i2;   //-100超过char的表数范围,所以转换成完全不同的值,无意义的值!
        System.out.println(c3);  //?
    */    
    /*
        //表达式中的类型提升问题
        int a = 3;
        long n = 4;
        double d = 5.3;
        int c = (int)(a+n);   //做所有的二元运算符(+-/*%),都会有类型提升的问题!
        float f = (float)(a + d);
  System.out.println(f1);  //  8.3
   System.out.println(c);  //  7
    */
    
        int money = 1000000000;  //10亿
        int years = 20;
        long total = (long)money*years;   //返回的是负数
        System.out.println(total);    //  200 亿
        
        //一个人70年心跳多少次
        long times = 70L*60*24*365*70;
        System.out.println(times);     //  2575440000
        
        
    }

}

猜你喜欢

转载自www.cnblogs.com/mysterious-killer/p/9920638.html