表达式中存在的类型 | 表达式值的类型 |
---|---|
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类型
}
}