jvm虚拟机内存模型
方法区
被所有线程共享,但用以存储类型信息、常量、静态常量、代码缓存。
运行时常量池
方法区中的一块内存区域,用于存放编译器生成的各种字面量和符号引用。
虚拟机栈
每一个线程私有,用来保存局部变量、操作数栈、动态连接和方法出口等信息。
本地方法栈
每一个线程私有,服务于jvm虚拟机调用本地方法的的“虚拟机栈”。
堆
被所有线程共享的内存区域,用以存放对象实例。GC负责管理这块区域。
程序计数器
每一个线程私有一个程序计数器,用来记录当前线程所执行的字节码的行号,保证在上下文切换的时候可以恢复到正确的执行位置。