2 3和4感觉都有错呀

public class Test {
public static void main (String args[ ]) {
byte b =7;
b = 7+120; //【1】
b = b; //【2】
b = b+120; //【3】
b += 120; //【4】
}
}

1 正确,127 在 byte 范围;
2 正确,表达式左右两侧都是 byte 类型;
3 错误,表达式右侧为 int 类型;
4 正确,编译器自动插入强制类型转换;

如有帮助,请采纳。

    byte b =7;
    b = 7+120; //【1b = b; //【2b = b+120; //【3】 byte 与 int   这一行 会报错
    b += 120; //【4】 这一行 等同于 b = b+120; 但是 编译器强制类型转换

byte 的长度 在 -128 到 127 之间