java自增运算符前后缀的关键区别在于表达式值取自增前还是自增后的变量值:前缀++i返回自增后值,后缀i++返回自增前值;无论哪种,变量本身均会完成自增。

Java 中自增运算符的前后缀区分,关键不在“谁先执行自增”,而在于表达式的值取的是自增前还是自增后的变量值。这个值会直接影响赋值、参与计算或作为方法参数等后续行为。
看位置,定形式
形式由 ++ 相对于变量的位置决定:
-
前缀式:符号在变量前面,如
++i、--j -
后缀式:符号在变量后面,如
i++、j--
核心区别:表达式的计算结果不同
无论前缀还是后缀,变量本身都会在表达式求值过程中完成自增(或自减)。但两者返回给当前表达式的值不同:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
-
++i表达式的值是 i 自增之后的新值 -
i++表达式的值是 i 自增之前的旧值
例如:
int i = 5;
int a = ++i; // i 先变 6,a 得到 6
int b = i++; // b 先得到 6,i 再变 7
典型陷阱:赋值语句中的表现
当自增出现在赋值右边时,前后缀差异最易被误解:
-
i = i++;:先用i的旧值(比如 5)存入临时位置,再让i自增为 6,最后把旧值 5 赋回i→ 结果仍是 5 -
i = ++i;:先让i自增为 6,再把新值 6 存入临时位置,最后赋回i→ 结果是 6
复杂表达式里要按优先级和顺序读
多个运算符混用时,需结合运算符优先级与从左到右的结合性分析:
int a = 5, b = 10;-
int c = ++a + b++;:
→++a先执行,a变 6,表达式值为 6;
→b++表达式值为 10(旧值),然后b变 11;
→ 所以c = 6 + 10 = 16
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










