Java允许用于二元运算的值具有不同的类型,当两个类型不同的运算对象进行二元运算时,Java按照以下规则自动转换运算对象的类型:
1.如果运算对象之一是double类型,就将另外一个转换为double类型;
2.否则,如果运算对象之一是float类型,就将另外一个转换为float类型;
3.否则,如果运算对象之一是long类型,就将另外一个转换为long类型;
4.否则,两个运算对象都转换为int类型。
数值类型的范围按以下的顺序增加:byte,short,char,int,long,float,double
总可以将一个数值赋给支持较大数值范围类型的变量;但是,如果不进行类型转换,就不能将一个值赋给范围较小类型的变量。将一个小范围类型的变量转换为大范围类型成为拓宽类型,把大范围类型的变量转换为小范围类型称为缩窄类型。拓宽类型不需要明确指出,可以自动执行转换;缩窄类型必须明确指出。
当后两个表达式有一个是常量表达式时,另外一个是类型T时,而常量表达式可以被T表示时,输出结果是T类型。