您的位置:首页 > 编程语言 > Java开发

java i++ 和 ++i 深度解析

2015-08-08 16:39 375 查看

i++ 和 ++i 都能实现+1, 顺序不同

[code]public class TestPlus {

    public static void main(String[] args) {
        int i = 0;
        System.out.println(i++);

        int j = 0;
        System.out.println(++j);

        System.out.println("i=" + i + " j=" + j);

    }
}


输出结果为

[code]0
1
i=1 j=1


如上所示:

i++ 是执行完后面的语句, 才加1

++i 就先加1, 才执行后面的语句

i++利用了中间缓存变量

如果 i = i++ 会是什么结果呢

[code]public class TestPlus {

    public static void main(String[] args) {
        int i = 0;
        i = i++;
        System.out.println(i);

        int j = 0;
        j = ++j;
        System.out.println(j);

    }
}


输出为

[code]0
1


i++ 有中间缓存变量, i = i++ 等价于

[code]temp = i;
i = i + 1;
i = temp;


所以 i 不变, 依然是0

[code]//Warning: The assignment to variable j has no effect
j = ++j;


[code]j = ++j 相当于 j = j = j + 1


所以编译器警告, 语句的赋值没有作用

总结

++i 没有中间缓存变量, 理论上比 i++ 更加高效
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: