Java语言中的构造语义由Java语言规范定义,但它们不是JVM指令.那么,是否有可能严格定义规范以防止错误实现Java编译器?或者Java语言和JVM指令之间的映射非常简单,没有必要担心这个问题?
它会破坏将语言与字节码分离的大部分内容,以便将Java代码清晰地映射到JVM指令.相反,编译器可以自由地确定哪些指令最能代表所提供的源,以便优化实际运行的效率.
这确实意味着编译器可能会做错事,但一般来说,你可以相信像Oracle这样的主要编译器正在做正确的事情; 他们经受了很多考验.