JVM内存模型

程序计数器

线程私有,每个线程都有,如果当前线程正在执行方法,则指向指令地址

虚拟机栈

线程私有,调用方法时,创建一个栈帧,调用与退出方法,对应栈帧入栈、出栈,遵循后进先出原则

栈帧存储方法局部变量、操作数、动态链接、方法返回地址

当线程请求栈深度超出虚拟机所允许的范围,抛出OverStackError

本地方法栈

线程私有,类似虚拟机栈

线程共享,最大的一块内存,通过Xmx、Xms配置,存储对象实例

给对象分配内存一般有两种方法:指针碰撞、空闲列表

当没有足够的内存分配给新建对象,会触发Minor GC进行垃圾回收

当线程请求的内存超出虚拟机所允许的范围,抛出OutOfMemoryError

方法区

线程共享,存放常量、类加载信息、静态变量

浙ICP备11005866号-12