程序中在计算表达式时,会自动进行类型提升。如,
byte b = 1;
short s = 2;
int i;
long l = 1;
//b = b * 2; //类型不匹配,不能将int转换为byte
//s = s * 2; //类型不匹配,不能将int转换为short
l = l * 2;
//i = l * 2; //类型不匹配,不能将long转换为int
float f = 1.0f;
double d;
//f = f * 2.0; //类型不匹配,不能将double转换为float
由上面程序可以看出,byte和short同整数字面量做运算,表达式被提升成了int类型。long类型同整型字面量做运算,表达式被提升成了long类型。float类型同双精度的浮点型字面量做运算,表达式被提升成了double类型。
网友评论