首先你需要知道的区别
x++和
++X;
如果是
x++:
首先,将使用当前值,然后将其递增。这意味着您将获得操作的当前值,
x并且如果您下次使用x将获得递增的值;
如果是
++x:
首先,当前值将增加,然后将使用它(增加的值),这意味着您将在此操作中获得增加的值,而在此操作之后将获得其他值。
现在让我们分割代码并分别讨论
方法:sample1():
private static int sample1(int i) { return i++;}此方法将采用int值,然后先返回它,然后尝试递增,但是返回后,变量
i将超出范围,因此它将永远不会递增。
exp in: 10-> out 10
方法:sample2():
private static int sample2(int j) { return ++j;}此方法将获取一个int并先对其进行递增,然后返回它。
exp in: 10-> out 11
在这两种情况下,只有变量会在本地更改,这意味着,如果从main方法调用,则main方法的变量将不受更改的影响(因为sample1()和sample2()正在复制变量)
现在获取主要方法的代码
System.out.println(sample1(i++)); // it's giving sample1() `i=0` then making `i=1` // so sample1() will return 0 too;System.out.println(sample1(++i)); // it's making `i=2` and then giving sample1() `i=2` // so sample1() will return 2;System.out.println(sample2(j++)); // it's giving sample2() `j=0` then making `j=1` // so sample2() will return 1;System.out.println(sample2(++j)); // it's making `j=2` giving sample2() `j=2` then // so sample2() will return 3;



