3 个回答

A:两个有区别,第一个12.345f是单精度浮点数类型的字面量,第二个赋值运算符的右边没有f的是双精度类型的字面量,即double型的,要赋值给float,这是向下的,所以要强制类型转换
B:1、2、4对,虽然是int型的字面量,但是如果在byte的范围内,可以直接赋值给byte类型的变量(4是两个字面量相加,不是变量,注意区别)
第三个 byte b3 = b1 + b2;错误,虽然字面量在byte范围内可以直接赋值,但是变量不行,两个byte类型参与运算会放大成int型,要在赋值给byte类型的变量,需要做类型转换。

A: 第一个正确

第二个暗含double->float 转换

B: 一二正确,三 错误,byte 右边不能出现变量,四 int->byte

倒数第二句,因为等号右边两个byte的变量,想加是有可能超出byte范围的

推荐问题