【常见面试题】java自增 i++与++i

本文探讨了Java中的自增运算符(i++)和(++i)的使用,建议在工作中避免使用复杂的自增表达式以减少混淆。通过测试代码展示了自增运算符的执行顺序,得出i=4, j=1, k=11的结果,强调了明确的+1操作更有利于代码清晰性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 先上结论

在工作中,避免使用复杂的++自增,容易造成混乱。不如直接+1,清晰明了,不容易出bug。此题最大的意义就是面试

  1. 赋值=,最后计算

  2. =右边的从左到右加载值依次压入操作数栈

  3. 实际先算哪个,看运算符优先级

  4. 自增、自减操作都是直接修改变量的值,不经过操作数栈

  5. 最后的赋值之前,临时结果也是存储在操作数栈中

建议:《JVM虚拟机规范》关于指令的部分

2. 测试代码

public class AutoIncrement {
    public static void main(String[] args) {
        int i = 1;
        i = i++;
        int j = i++;
        int k = i + ++i * i++;
        System.out.println("i=" + i);    // i=4
        System.out.println("j=" + j);        // j=1
        System.out.println("k=" + k);        // k=11
    }
}

输出结果

i=4

j=1

k=11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茅坑的小石头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值