加法数据类型提升
代码
数据类型的自动提升: byte,short,char在参与运算时,会自动提升为int类型,他们三个之间不存在提升。
如果还有long,float,double,相应的提升为long,float,double.
若long,float同时有,提升为float,
若long,float,double同时存在,则提为double.
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
byte a = 1;
short b = 2;
byte x =127;
byte y = 1;
//byte c = a+b;//报错
//short c =a+b;//报错
//byte c = (byte)(a+b);//强制类型转化可以,但会缺失精度
byte z= (byte)(x+y);//缺失精度
int c = a+b;//提升为int
byte d = 3+4;//可以,常量优化机制
System.out.println(c);
System.out.println(d);
System.out.println(z);
}
}
输出:
3
7
-128
Process finished with exit code 0
---------------------
谢谢