首页 > 试题广场 >

以下那些代码段能正确执行

[不定项选择题]
以下那些代码段能正确执行
  • public static void main(String args[]) {
    byte a = 3;
    byte b = 2;
    b = a + b;
    System.out.println(b);
    }
  • public static void main(String args[]) {
    byte a = 127;
    byte b = 126;
    b = a + b;
    System.out.println(b);
    }
  • public static void main(String args[]) {
    byte a = 3;
    byte b = 2;
    a+=b;
    System.out.println(b);
    }
  • public static void main(String args[]) {
    byte a = 127;
    byte b = 127;
    a+=b;
    System.out.println(b);
    }
byte类型的变量在做运算时被会转换为int类型的值,故A、B左为byte,右为int,会报错;而C、D语句中用的是a+=b的语句,此语句会将被赋值的变量自动强制转化为相对应的类型。
发表于 2018-12-21 17:30:50 回复(40)
+=会自动强转(自动装箱功能),但是+必须要手动强转b=(byte)(a+b)。。。这题我的关注点都放错了,死死盯着127
发表于 2019-11-06 13:32:38 回复(22)
发表于 2019-08-15 14:43:23 回复(1)
char、byte、short相加时会自动转换为int类型,所以:
A、B选项需要加强转(byte)
C、D选项中的+=会自动进行强转,相当于加了(byte);
D选项中的越界问题,由于byte的最大值与最小值是首尾相接的(不知道这样描述准不准确,byte范围是-128-127,也就是说byte b1=(byte)128;System.out.println(b1);打印出来的实际是-128),由于加了强转,所以不会受到越界的影响。
有错误之处欢迎指出!
发表于 2020-01-29 13:33:10 回复(1)

能不能排个版 这版型是个P噢( •̅_•̅ )


发表于 2019-11-17 14:01:19 回复(0)



编辑于 2019-01-11 17:02:25 回复(1)
c项中"+="符号会自动转换类型 d项中127+127转换成二进制后是一个负数 即254 补码为11111110 求反码11111101 原码为10000010 为-2
发表于 2019-09-10 22:00:17 回复(0)
这种格式的代码题目我直接放弃了,实在看不下去
发表于 2019-12-21 18:46:16 回复(0)
+=会自动强转,但是+要手动强转

发表于 2022-02-10 21:31:07 回复(0)
a + b的这种表达式的返回值是会自动转成int类型的,b = a + b相当于是把int类型的值赋给byte类型的值,所以A B错误,而对于D选项,超出byte范围时会将byte8个字节的第一位置位1,所以D选项是正确的,只不过会得到一个负数
发表于 2019-09-27 09:00:17 回复(2)
+=会自动强转左右
而 b = a + b运算时会强转右边为int,左边还是byte而左右类型不一致就会出错
发表于 2022-05-03 16:50:31 回复(0)
主要两点,第一点,比int字节小的在用+=编译时会自动强转,应为一般运算会当做int处理, 第二点 d中肯定是会越界,所以计算出来的结果是不正确,会舍去超出的部分,但能运行
发表于 2022-03-25 18:57:43 回复(0)
A、B选项中左边的变量为byte,而右端为int,肯定会报错,而C、D+=会进行强转(自动装箱)
发表于 2022-03-10 10:25:42 回复(0)
byte类型的变量在做运算时被会转换为int类型的 值,故A、B左为byte,右为int,会报错;而C、 D语句中用的是a+=b的语句,此语句会将被赋值 的变量自动强制转化为相对应的类型。
发表于 2022-02-25 19:53:19 回复(0)
int以下远算符做运算时,都会自动转为int类型做运算,这时候需要强转。+=会自动强转!
发表于 2021-12-16 11:13:34 回复(0)
byte类型的变量在做运算时被会转换为int类型的值
发表于 2021-12-08 09:38:45 回复(0)
+=可以完成自动强转,先+在=需要手动
发表于 2021-12-08 09:31:31 回复(0)
学到了,+=会自动转型
发表于 2023-08-02 15:00:37 回复(0)
M
char、byte、short相加时会自动转换为int类型,所以:
A、B选项需要加强转(byte)
C、D选项中的+=会自动进行强转,相当于加了(byte);
D选项中的越界问题,由于byte的最大值与最小值是首尾相接的(不知道这样描述准不准确,byte范围是-128-127,也就是说byte b1=(byte)128;System.out.println(b1);打印出来的实际是-128),由于加了强转,所以不会受到越界的影响。
编辑于 2022-07-12 09:50:10 回复(0)
复合类型运算符号自动进行类型转换,(byte)127+128
发表于 2022-05-30 07:37:20 回复(1)