内存模型主要分为共享内存和线程独享内存,内存分配原理为1.JVM先检查new关键字,并在常量池中定位到一个类的引用;2.检查定位到的类是否已经经过了加载、解析、初始化等步骤;3.为其分配内存,存储对象实例。
一、共享内存
1、运行时常量池
编译期已经确定的数值等
2.方法区
JAVA类的结构信息
3.堆
对象实例的存储区域,同时也是JC的主要回收区
二、线程独享内存
1、PC寄存器
程序计数
2.JAVA栈
原始数据类型、对象引用、以及returnAddress
3.本地方法栈
比如用其他语言实现某一功能时