数据类型进行运算的问题以及常量优化机制

表达式中存在的类型 表达式值的类型
double double
反之存在float float
再反之存在long long
其他情况 int

案例

package com.ujiuye.day03;

public class Demo4 {
    public static void main(String[] args) {
//        int a = 10;
//        long b = 12L;
//
//        long result = a + b;//这个表达式的值类型是 long

//        byte b = 10;
//        short s = 20;
//        int result = b + s;
    }
}

编译器的优化机制

当在为byte short char类型的变量赋值时, 字面值常量的类型默认为int类型,这个时候,为了开发方便,编译器会自动的将字面值常量进行强制类型转换,不需要手动转换

package com.ujiuye.day03;

public class Demo4 {
    public static void main(String[] args) {
//        int a = 120;
//        byte b = (byte) a;// 大类型转换为小类型 需要强制类型转换  
        
          byte b = 120;// 整数类型中字面值常量的默认类型为int   120 其实是int类型
    }
}

上一篇:BitMap数据结构梳理总结及代码实现


下一篇:java数据类型