Java的表达式类型提升

在由变量和运算符组成的表达式进行运算时,会发生变量类型的自动变换。

1.java会将byte、short或char类型自动提升为int类型。

Java的表达式类型提升

上面的程序运行会报错,因为系统会将s1+1的结果提升为int类型,然后再赋值给s1,将大变量类型赋值给小变量类型时,如果不进行类型的强制转换,比如直接将int类型赋值给short类型会发生报错,所以,可改为

Java的表达式类型提升


2.如果表达式中有int,long,float,double等数据类型,表达式的类型将保持和表达式中最高等级操作数相同的类型。

Java的表达式类型提升

比如,表达式中有long类型且是最大数据类型,则将整个表达式提升为long类型。

但是在使用+=、-=、*=、/=、%=等运算符进行赋值时,强制类型会自动完成,程序不需要做显示地声明。