例如,我有两个版本的简单计数循环 - 都实现了相同的目的,但一个比另一个更高效(并且可能使用更少的内存)。见下文:
代码 1:
int num;
for (num =0; num<10; num++){
System.out.println(num);
}
代码 2:
for (int num=0; num<10; num++){
System.out.println(num);
}
最佳答案
它们的编译方式相同,因此具有相同的性能和内存要求。
使用 javap -c <classfile>
查看编译后的 java 字节码作为证明。
代码:
public static void a() {
for (int num = 0; num < 10; num++) {
System.out.println(num);
}
}
public static void b() {
int num;
for (num = 0; num < 10; num++) {
System.out.println(num);
}
}
字节码:
public static void a();
Code:
0: iconst_0
1: istore_0
2: goto 15
5: getstatic #15 // Field java/lang/System.out:Ljava/io/PrintStream;
8: iload_0
9: invokevirtual #21 // Method java/io/PrintStream.println:(I)V
12: iinc 0, 1
15: iload_0
16: bipush 10
18: if_icmplt 5
21: return
public static void b();
Code:
0: iconst_0
1: istore_0
2: goto 15
5: getstatic #15 // Field java/lang/System.out:Ljava/io/PrintStream;
8: iload_0
9: invokevirtual #21 // Method java/io/PrintStream.println:(I)V
12: iinc 0, 1
15: iload_0
16: bipush 10
18: if_icmplt 5
21: return
关于java - 有没有办法评估/衡量Java代码的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27018673/