package cn.mldn.demo;
public class Test1_DataTypeConversion {
public static void main(String[] args) {
byte b1 = 3;
byte b2 = 4;
// byte b3 = b1 + b2;
// System.out.println(b3);
// 从两个方面
// 1. byte 与 byte (或者 short char ) 进行运算的时候会提升int 两个int 类型相加的结果也是int 类型
// 2. b1 和 b2 是两个变量,变量存储的是变化 ,在编译的时候无法判断里面的值,相加有可能会超出byte的取值
//
byte b4 = 3 + 4;
System.out.println(b4);
// java编译器有常量优化机制
}
}
b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值
byte类型的变量在进行运算的时候,会自动类型提升为int类型
3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了
Java编译器有常量优化机制 和直接赋值7 是一个意思