| 先来看几个例子 int a=1;
 byte b1=1+a;//error
 byte b2=1+1;//ok
 byte b3=1+127;//error
 byte b4=1+126;//ok
 
 int x=1l+2l;    //error,1,2为long型
 
 int b=1;
 short s1=2+b;//error
 short s2=3+2;//ok
 
 int c=2.3f+3.2f;//or
 
 float d=3.3+3.2;//error
 
 
 总结: 虚拟机对默认类型int型有优待:当右边类型都是int型,而且只做一次运算(变量赋值已经算一次运算了),
 虚拟机会先尝试窄转换,如果超出左边类型范围就报错,没超出就通过。
 但是默认类型double和其他基本类型就没有这样的待遇了。
 
 
 |