+=操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型,而a=a+b则不会自动进行类型转换。如:
byte a = 127;
byte b = 127;
b = a + b; // error : cannot convert from int to byte
b += a; // ok
(其实无论 a+b 的值为多少,编译器都会报错,因为 a+b 操作会将 a、b 提升为 int 类型,所以将 int 类型赋值给 byte 就会编译出错)
本文探讨了Java中byte类型使用`+=`操作符与直接赋值`a=a+b`的区别。在涉及类型转换时,`+=`操作符会自动将结果转换为变量的原始类型,而直接赋值可能导致编译错误,因为不会进行自动类型转换。通过示例代码,展示了当尝试将int类型赋值给byte类型时,如何引发编译错误。
+=操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型,而a=a+b则不会自动进行类型转换。如:
byte a = 127;
byte b = 127;
b = a + b; // error : cannot convert from int to byte
b += a; // ok
(其实无论 a+b 的值为多少,编译器都会报错,因为 a+b 操作会将 a、b 提升为 int 类型,所以将 int 类型赋值给 byte 就会编译出错)
1万+
1327

被折叠的 条评论
为什么被折叠?