一、JVM体系
JVM是运行在操作系统之上的,它与硬件没有直接的交互。
Java 虚拟机将运行时内存区域划分为五个部分,分别为
- 方法区、堆、PC 寄存器、Java 方法栈和本地方法栈
转换的过程为通过编译器将 Java 程序转换成该虚拟机所能识别的指令序列,也称 Java 字节码。Java虚拟机会将字节码,即class文件加载到JVM中。由JVM进行解释和执行。
执行 Java 代码首先需要使用类加载器将它编译而成的 class 文件加载到 Java 虚拟机中。加载后的 Java 类会被存放于方法区(Method Area)中。实际运行时,虚拟机会执行方法区内的代码。
在虚拟机中,方法区和堆为线程共享,也是垃圾回收的重点照顾区域。栈空间为线程私有,基本不会出现垃圾回收。
二、类加载器
1. 类加载器简介
类加载器,即ClassLoader,它负责加载class文件。
2. 类加载器分类
虚拟机自带的类加载器:
- 启动类加载器(Bootstrap):主要负责加载jre中的最为基础、最为重要的类