JVM工作过程
JVM运行的过程涉及三个子系统:
- 类装载子系统(Class loader SubSys)
- 运行时数据区(Running Data Areas)
- 执行引擎(Execution Engine)
类加载子系统
-作用是将字节码文件加载到JVM中,在类第一次被使用的时候,需要初始化文件。
- 装载:功能就是加载类,使用到了三个类加载器。
Bootstrap ClassLoader 启动类加载器
Extension ClassLoader执行类加载器
Application ClassLoader应用来加载器 - 链接:
验证:字节码验证器将验证生成字节码是否正确,如果验证失败,将得到验证错误。
准备:对于所有的静态变量,进行i分配内存并给默认值分配内存,并给默认值null
解析:将所有的符号内存引用替换为方法区的原始引用初始化,静态变量将被赋予原始值,静态代码块将被执行。
运行时数据区域
- 方法区:类级别数据、静态变量的应用,线程共享。
- 堆区:对象及其实