大佬教程收集整理的这篇文章主要介绍了x = x + 1和x ++在实现上的差异,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想你的教授也许是故意 的x
-after x = x + 1
和x++
will
的价值是相同的。只是重新措辞,因为它似乎在解释问题时造成了混乱。
好的,尽管的值x
将相同,但是它们是不同的运算符,并且在字节码中使用不同的JVM指令。x +
1
使用iadd
指令,而x++
使用iinc
指令。尽管这取决于编译器。编译器可以自由地对特定操作使用不同的指令集。我已经针对javac
编译器进行了检查。
对于 eclipse 编译器,来自@Holger的以下注释之一:
您可以使用javap
命令检查字节码。让我们考虑以下类:
class Demo {
public static voID main(String[] args) {
int x = 5;
x = x + 1;
System.out.println(X);
x++;
System.out.println(X);
}
}
编译上面的源文件,并运行以下命令:
javap -c Demo
该代码将被编译为以下字节码(仅显示该@H_155_4@main方法):
public static voID main(java.lang.String[]);
Code:
0: iconst_5
1: istore_1
2: iload_1
3: iconst_1
4: iadd
5: istore_1
6: getstatic #2 // FIEld java/lang/System.out:Ljava/io/PrintStream;
9: iload_1
10: invokevirtual #3 // Method java/io/PrintStream.println:(I)V
13: iinc 1, 1
16: getstatic #2 // FIEld java/lang/System.out:Ljava/io/PrintStream;
19: iload_1
20: invokevirtual #3 // Method java/io/PrintStream.println:(I)V
23: return
以上是大佬教程为你收集整理的x = x + 1和x ++在实现上的差异全部内容,希望文章能够帮你解决x = x + 1和x ++在实现上的差异所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。