java 中 ++i与i++的区别

先说结论

结论:在JAVA中 i++与++i是有区别的,

先看下面的代码

package scanner;
public class text {
    public static void main(String[] args) {
        int x=0;
        int y=0;
        x=x++;
        x=x++;
        x=x++;
        System.out.println("x="+x);
        y=y++;
        y=y++;
        y=y++;
        System.out.println("y="+y);
        x=++x;
        x=++x;
        x=++x;
        System.out.println("x="+x);
        y=++y;
        y=++y;
        y=++y;
        System.out.println("y="+y);
    }
}

结果:

原来m++是一个表达式,是有返回值的,它的返回值就是m自加前的值,Java对自加是这样处理的:首先把m的值(注意是值,不是引用)拷贝到一个临时变量区,然后对m变量加1,最后返回临时变量区的值。程序第一次循环时的详细处理步骤如下: 步骤1 JVM把m值(其值是0)拷贝到临时变量区。 步骤2 m值加1,这时候m的值是1。 步骤3 返回临时变量区的值,注意这个值是0,没修改过。 步骤4 返回值赋值给m,此时m值被重置成0