社区首页 >专栏 >【Java杂项】为什么 b += 1 可以,但 b = b + 1 会报错?类型提升与复合赋值详解
【Java杂项】为什么 b += 1 可以,但 b = b + 1 会报错?类型提升与复合赋值详解
超级苦力怕
发布于 2026-05-22 11:46:22
发布于 2026-05-22 11:46:22
1130
举报
概述
很多 Java 初学者都会遇到一个很反直觉的问题:byte b = 10; b = b + 1; 会编译错误,但 b += 1; 却可以通过。它看起来像是同一件事,结果却完全不同。本文会从类型提升、表达式结果类型、复合赋值规则和溢出风险四个角度,把这个问题讲清楚。读完后,你应该能判断什么时候是类型提升,什么时候是复合赋值的隐式转换。