JVM内存结构
堆
线程共享
JDK8之前,分为新生代、老年代、持久代,新生代分为伊甸园、存活区
JDK8之后,分为新生代、老年代、元空间(本地内存)
方法区
线程共享
常量池
- 静态常量池,也叫class文件常量池,主要存放:
- 字面量:例如文本字符串、final修饰的常量
- 符号引用:例如类和接口的全限定名、字段的名称和描述符、方法的名称和描述符
- 运行时常量池
- 当类加载到内存中后,JVM就会降静态常量池中的内容存放到运行时的常量池中;运行时常量池里面存储的主要是编译器间生成的字面量、符号引用等等
- 字符串常量池
- 字符串常量池,也可以理解成运行时常量池分出来的一部分,类加载到内存的时候,字符串,会存到字符串常量池里面
虚拟机栈
线程隔离
管理java方法
本地方法栈
线程隔离
和虚拟机栈类型,区别是管理的是native方法
程序计数器
线程隔离
记录下一条运行的指令等等