Fork me on GitHub

深入了解类型转换技巧

前置知识铺垫:

        隐式转换:当小的数据类型和大的数据类型在一起运算的时候,小的会先提升为大的的数据类型,再进行运算。

        特殊关注:byte short char 在运算的时候,都会直接提升为int类型

         例如:

public class Day{
    
    public static void main(String [] args){
        // 隐式转换 小范围转给大范围直接转,但是大的不能直接给小的
                byte a = 2;
                byte b = 3;
            /*    byte c = a + b 错误原因:这里的a和b是byte类型,他们在运算之前将自己提升为int类型,
            然后再进行运算,两个int相加后还是int,把int类型赋值给byte大的给小的,不能直接给,必须
            强制类型转换..
            */
            //
             int big = a+b;
             //
             byte mine = (byte)(a+b);
             System.out.println(big);
                System.out.println(mine);
                
    }
}

Java存在常量优化机制

 

public static void Eg2 (){
        /*
        Java存在常量优化机制,2,4属于int类型且属于常量,则触发优化机制,2+4=6属于byte的范围,
        所以默认转化为了byte如果大于byte范围,则出现编译错误。
        */
         byte b = 2 + 4;
         System.out.println(b);
    } 

 

 

 

 

 

posted @ 2021-04-14 17:39  风をした  阅读(19)  评论(0)    收藏  举报