1 变量
- byte、short、char参与运算时,会被提升为 int 类型 再进行计算
//byte short char类型参与运算,会自动提升为int类型
byte a=1;
byte b=2;
//报错:因为a和b自动提升为int类型,无法复制给c(byte类型)
byte c=a+b;
//给 int 就可以表明前面所说没有扯淡
int d=a+b;
byte a1=1;
byte b1=2;
//报错:因为a1和b1首先转换为byte后,相加时又会自动提升为int类型
byte c1=(byte)a1+(byte)b1;
int d1=a1+b1;
byte a2=1;
byte b2=2;
byte c2=(byte)(a2+b2);// 3 这款就没有毛问题
int d2=a2+b2;
- 多个不同数据类型相加时,结果值是最大的那个数据类型
byte a=1;
short b=2;
int c=3;
long d=4;
float e=5;
//报错:float > long
long f1=a+b+c+d+e;
//不报错
float f2=a+b+c+d+e;
byte a=1;
float b=1.0f;
System.out.println(""+a+b); //11.0 这结果是字符串
System.out.println(a+b+"");//2.0 上同 先左后右
2 常量
byte a=1;
byte b=2;
// 3 常量不参与变量的运算规则
byte c1=1+2;
//报错:a b 转换成int类型
byte c2=a+b;
int d=a+b;
//报错 变量参与变量的运算规则(只要有变量就有变量运算规则)
byte e=1+b;