可读性好,但是编译效率低,赋值时若两边类型不一致,并且是从高级别类型转化为低级别类型时,需要进行强制转换;
栗子:
public static void main(String[] args) {
byte a = 10;
int b = 20;
//a = a + b; 该语句报错,报错原因:a+b的结果为int型,赋值时int型要转化为byte型,这时需要强制转换
a = (byte) (a + b);
System.out.println(a); //输出:30
b = a + b; // 该语句正确,分析:a+b的结果为int型,赋值时无需转换类型
System.out.println(b); //输出:50
}
可读性差,但编译效率高,赋值时若两边类型不一致,无论什么类型转化为什么类型,计算机底层都会自动进行类型转换;
栗子:
public static void main(String[] args) {
byte a = 10;
int b = 20;
a += b; //赋值时,计算机底层自动将int型转化为byte型
System.out.println(a); //输出:30
b += a;
System.out.println(b); //输出:50
}
备注:
若不清楚多种数据类型表达式的运算过程,可以看这里噢!https://www.cnblogs.com/seven6789/p/14151047.html
原文:https://www.cnblogs.com/seven6789/p/14154607.html