JVM(一)

一.垃圾回收算法

引用计数法、标记压缩法、复制算法、分带算法、标记清除

引用计数法:无法处理循环引用的情况

标记清除:存在空间碎片的问题  (数据不是连续的)

复制算法:将内存空间分成两块,每次只是用一个部分,反复交换两个内存的角色(s0和s1区)

标记压缩法:将标记的对象压缩的内存的一端,清除之前的空间  (老年代使用)

分区算法(JDK1.7以后):将整个内存分多个小的独立空间 ,每个空间可独立使用 ,这个控制一次回收多少个和哪些具体的小空间,不对整个内存空间进行GC,从而提高性能,减少GC停顿的时间.

总结:新生代的对象不稳定,使用复制算法,老年代对象比较稳定,使用标记压缩法,老年代使用复制算法消耗时间,也消耗内存空间.

二.对象分区

新生对象未进过GC回收都会放在eden区,经过回收后会进入s0或s1区,s0和s1区使用复制算法.

三.垃圾回收时的停顿现象

 

四.对象如何进入老年代

打印对象所占用的内存:-Xmx64M -Xms64M -XX:+PrintGCDetails

设置进入老年代被GC的次数上限,并打印:-Xmx1024M -Xms1024M -XX:+UseSerialGC -XX:MaxTenuringThreshold=15 -XX:+PrintGCDetails

虚拟机对于体积不大的对象,会优先把数据分配到TLAB区,因此失去了在老年代分配的机会

五.TLAB区

六.对象创建的流程图

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值