一、概述
有时候,细节决定成败。
二、代码文件(
Test.java)
两个for循环,一个是++i,另一个是j++。
public class Test {
public static void main(String[] args) {
int count = 10;
System.out.println("======第一个for循环输出i的结果======");
for(int i = 0; i < count; ++i) {
System.out.println("i = " + i);
}
System.out.println("======第二个for循环输出j的结果======");
for(int j = 0; j < count; j++) {
System.out.println("j = " + j);
}
}
}
三、输出结果(相同)
======第一个for循环输出i的结果======
i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
======第二个for循环输出j的结果======
j = 0
j = 1
j = 2
j = 3
j = 4
j = 5
j = 6
j = 7
j = 8
j = 9
四、编译文件(
Test.class)
编译后打开同名的.class文件,展示如下。
public class Test {
public Test() {
}
public static void main(String[] args) {
int count = 10;
System.out.println("======第一个for循环输出i的结果======");
int j;
for(j = 0; j < count; ++j) {
System.out.println("i = " + j);
}
System.out.println("======第二个for循环输出j的结果======");
for(j = 0; j < count; ++j) {
System.out.println("j = " + j);
}
}
}
五、总结
在这种场景下,++i和j++输出的结果一样,但是编译后的结果全是++j。
平时大部分人习惯性的写为j++,java源码大部分是++j。
Copyright © 2018 Ansel. All rights reserved.