基本类型转化都比较了解,这里主要记录刚遇到的特殊的。
①:java中,当参与运算的两个数是byte、short或int时候,他们首先都会被转化为int类型,再进行计算
最后再赋值给原变量。
②:a+=b会隐式地把运算结果转化为a的类型。而a=a+b不会把a+b运算结果的类型隐式转化为a的类型。
看下面代码:
public static void main(String[] args) {
short a = 1;
short b = 1;
float d = 1.0f;
a+=b; //此行未报错
//a = a+b;//此行报错,从高到底,需要强制类型转化为short
a+=d; //就算是float类型,也还是可以自动隐式转化的
System.out.println(a);
}