jvm-notes

Java虚拟机是Java平台的基石。它是技术的组成部分,负责硬件和操作系统的独立性,编译代码的小巧大小以及保护用户免受恶意程序侵害的能力。

Java虚拟机是抽象的计算机。像真正的计算机一样,它具有指令集,并在运行时操作各种内存区域。使用虚拟机实现编程语言是相当普遍的。最知名的虚拟机可能是UCSD Pascal的P代码计算机。

Java虚拟机对Java编程语言一无所知,仅对特定的二进制格式(class文件格式)一无所知。一个class文件包含的Java虚拟机指令(或字节码)和符号表,以及其它辅助信息。

为了安全起见,Java虚拟机对class文件中的代码施加了严格的语法和结构约束。但是,classJava虚拟机可以托管任何可以用有效文件表示的功能的语言。受通用的,独立于机器的平台的吸引,其他语言的实现者可以将Java虚拟机用作其语言的交付工具。

References

https://docs.oracle.com/javase/specs/index.html
https://docs.oracle.com/javase/specs/jvms/se8/html/index.html
https://github.com/deephacks/awesome-jvm
https://github.com/graalvm/graal-jvmci-8
https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javap.html