Java虚拟机内存模型

  

一 : Java虚拟机运行时内存模型


如上图:

一:模型种类:

java虚拟机内存模型主要分为5块:

1.  方法区 :主要存储已经加载过的类的相关信息 , 常量池  , 静态变量 。(所有线程共享)

2.  虚拟机堆: 主要存储创建出来的对象和数组对象 。(所有线程共享)

3. 虚拟机栈: 基本类型数据(int,short ,.......),对象的引用....(属于单个线程)

4. 程序计数器:java虚拟机的多线程是通过线程轮流切换处理实现的,任何一个时刻,一个处理器都只会执行某一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每个线程都有一个独立的程序计数器,主要用来记录该线程代码已执行到哪一行。(属于单个线程)

5. 本地方法栈: 在Hotspot虚拟机中,将该部分和虚拟机栈归类为同一块,虚拟机栈主要是记录java代码执行,但是本地方法栈是记录native方法执行情况。(属于单个线程)



二:内存回收模型:


GC  root种类:

1. 虚拟机栈所引用的对象。

2. 静态变量引用的对象。

3. 常量引用的对象。

4. 本地方法引用的对象。



分代回收算法:

1. 新生代 (eden , From survivor ,To survivor)。

2.  老年代。

3.  永生代。

新生代和老年代是对于堆内存的描述 , 永生代是对于方法区的描述 。





参考: 深入理解java虚拟机 JVM高级特性与最佳实践


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值