目录
1.JVM 简介
2.JVM 执行流程
3. JVM 运行时数据区
3.1 堆(线程共享)
3.2 Java虚拟机栈(线程私有)
Java 虚拟机栈中包含了以下 4 部分:
3.3 本地方法栈(线程私有)
本地方法栈和虚拟机栈类似,只不过 Java 虚拟机栈是给 JVM 使用的,而本地方法栈是给本地方法使用 的。
3.4 程序计数器(线程私有)
3.5 方法区(线程共享)
方法区的作用:用来存储被虚拟机加载的类信息、常量、静态变量(static)、即时编译器编译后的代码等数据 的。
在 HotSpot 虚拟机的实现中,在 JDK 7 时此区域 叫做永久代(PermGen),JDK 8 中叫做元空间(Metaspace)。
运行时常量池
4.JVM 类加载
① 类加载过程
对于一个类来说,它的生命周期是这样的: