JVM是java程序运行的核心机器,没有它,就没有那句经典的名言,“一次编译,到处运行”。
对于大多初级java开发者来说,仅仅停留在语言层面,而没有去深入语言内部的运行机制。java程序跑在jvm上,如果想要了解java语言内部的工作原理,那么肯定是要研究jvm的工作原理的。
当然了,jvm只是一个泛化的概念,所有遵守了《java虚拟机规范》的,都可以叫做JVM。规范只是提供了一些可供选择的策略建议,不同厂商可以有不同的实现。我们使用最多的Open JDK的内置虚拟机叫做HotSpot。
学习jvm其实和学习操作系统差不多,主要是一种思维上的洗礼,因为不同的虚拟机,会有不同的表现。我们研究一些通用的规范与热门的实现,可以让我们在写代码的时候,能够在脑海中构建程序运作的蓝图。让程序的运行变得不再那么抽象化。
当然,由于JVM的实现语言大多是C和C++,所以肯定不会太多的关注实现语言本身,这样做会加大理解成本。更多的是运行时的策略与具体的机制实现模型。
最后,就是现在的确实很卷,jvm已经成为应届生必须掌握的内容,至少你的简历上应该写上:了解JVM,...... 吧。
2024.10.30
writeBy kaiven