JVM architecture介绍
by Jiaming What is JVM? A Java virtual machine (JVM) is an abstract computing machine that enables a computer to run a Java program. 开始前先理清楚涉及 JVM 三个层面的概念: Specification: 对 JVM 的定义, architecture 的设计 Implementation: JVM中 具体的算法实现,比如 Garbage collection 算法具体实现 (Implementation of JVM 也被称为 JRE, java runtime environment) Instance: 执行JAVA程序的 JVM 实例 , 其生命周期随着JAVA程序的开始而开始,也随着JAVA程序的结束而结束,每个JAVA程序都各自在一个JVM instance里面运行, 但是一个JAVA程序如果有multithread, 只会在一个Instance里面运行。 这篇文章主要关注的是 Specification, 即是architecture上的设计,希望通过理解JVM去了解一个JAVA程序是怎么被执行的, 从而更深层次地理解JAVA语言的特点。以后有机会还会继续细讲JVM各个部分是如何别实现的。 JVM主要的功能: Loads code Verifies code Executes code Provides runtime environment JVM 还对以下成分做了定义 Memory area Class file format Register set Garbage-collected heap Fatal error reporting etc. 假设我们现在有app.java这个程序要运行,那么具体的流程到底是怎么样的呢? 我们会先运行 javac app.java, 然后这个程序会被编译,产生了app.class这个file, 1. 这是一个简化的流程: class loader 先将开发者编译的 app.class 和基本的 .class 文件 load 到 RAM 里面,...