java中a=a+b和a+=b真的一样吗?
byte b=233,byte a=233,b= a+b,与b+=a的区别。
因为 a 和 b 是 byte 类型,而在 Java 中,所有小于 int 的整数类型(byte、short 和 char)在参与算术运算时会被自动提升为 int 类型。
所以a+b的类型是int,b是char,所以为报编译错误。
b += a 是复合赋值运算符的写法,等价于 b = (byte)(b + a),因为b=233,a=233,所以存在溢出风险。
上一篇:sleep与wait的区别
下一篇:for循环执行流程
相关文章
-
面向对象三大特性 :封装、继承、多态
面向对象三大特性 :
NEW个对象 2025-01-10
-
什么是反射机制?为什么慢?
反射机制是指在运行时能获取到自身信息,只要给出类名,就可以访问类的属性和方法。
NEW个对象 2025-01-09
-
cglib与jdk代理的区别
JDK 动态代理: 只支持接口代理。它通过反射机制生成一个实现了指定接口的代理类。 代理对象只能调用接口中定义的方法。 CGLib 动态代理: 通过继承方式生成代理类。它可以代理没有实现接口的类。 代理对象可以调用类中的所有方法(除了final方法)。
NEW个对象 2025-01-18