什么是JVM指令?

7
我曾与一位面试官(标准的人力资源经理)谈过关于面试中他们真正看重的东西,其中他提到了JVM指令知识测试(还有其他很多事情)。我不知道那是什么,但我认为他在谈论字节码指令。经过一些研究,我发现没有找到任何关于“JVM Instructions” 的内容,我只能找到与字节码指令相关的参考资料,这已经是我所知道的了。例如:http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html。虽然刚开始看起来好像在讲JVM指令,但那似乎就是我所知道的字节码指令。所以我的问题是,有没有JVM指令,与字节码指令不同?还是它们本质上是一样的?谢谢。

3
JVM指令构成了字节码。不过,在面试中问这个问题挺有意思的,他们是否期望应聘者编写自己的编译器呢? - Joachim Isaksson
3
据我所知,它们是一样的。我不知道为什么面试官会测试这方面的知识。在Java编码方面,它几乎没有任何实际用途。只有当你要编写/维护基于Java/Groovy/JVM的编译器时,才真正有用。 - aroth
你的软件有什么功能需要了解字节码指令?我并不是说这种知识不必要,只是我自己对这些东西大多数都很幼稚。 - Cuga
他真是太愚蠢了。祝贺你诚实地探索和向社区提问,以确定自己是否真正理解问题。这就足以让你在我的店里得到聘用。 - mikermcneil
3个回答

7
所以我的问题是,JVM指令是否与字节码指令分开,还是一样的?它们是一样的。

3
补充说明:我不认为询问Java候选人是否具有深入的字节码知识有什么意义。即使在少数需要了解那种事情的情况下,你也不需要把那种知识记在脑子里。拥有高级别的字节码知识、知道它们如何生成以及如何执行的确是有价值的,但这需要不同的一组面试问题。 - Stephen C

4
他很可能只是在谈论字节码指令,因为这就是JVM运行的内容。

0
我知道的是ByteCode是一种抽象的机器语言,由JVM执行。一些生成字节码的指令有dadd(加两个数字),ddiv(除以两个数字),dload等。它们分为某些组类型转换、算术和逻辑等。所以我猜它们是相同的。这些指令构成了Java字节码。字节码指令列表http://www.stackframe.com/documents/bytecode.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接