1. Java中不支持 隐式的 高精度向低精度转换,会报错,但是支持隐式类型转换(如double 和int之间的隐式转换)
byte b1=1,b2=2,b3,b6;
final byte b4=4,b5=6;
b6=b4+b5;
b3=(b1+b2);
System.out.println(b3+b6);
上述代码会报错:
语句:b3=b1+b2编译出错
这是因为Java中的byte,short,char进行计算时都会提升为int类型。
必须显示的b3=(byte)(b1+b2).
同样的,float f=10.0; double d=f; 编译也会报错
2. 在类中的默认初始化:
byte 默认为0,long 默认为0L,boolean 默认为false,char 默认为‘’