jvm垃圾分代回收算法

垃圾分代回收算法(Generational Collecting)

基于对对象生命周期分析后得出的垃圾回收算法。把对象分为年青代、年老代、 持久代,对不同生命周期的对象使用不同的算法(上述方式中的一个)进行回收。 现在的垃圾回收器(从J2SE1.2 开始)都是使用此算法的。

1. Young(年轻代)JVM specification 中的Heap 的一部份 年轻代分三个区。一个Eden 区,两个Survivor 区。大部分对象在Eden 区中生 成。当Eden 区满时,还存活的对象将被复制到Survivor 区(两个中的一个), 当这个Survivor 区满时,此区的存活对象将被复制到另外一个Survivor 区,当 这个Survivor 去也满了的时候,从第一个Survivor 区复制过来的并且此时还存 活的对象,将被复制到年老区(Tenured)。需要注意,Survivor 的 两个区是对称的,没先后关系,所以同一个区中可能同时存在从Eden 复制过来 对象,和从前一个Survivor 复制过来的对象,而复制到年老区的只有从第一个Survivor 去过来的对象。而且,Survivor 区总有一个是空的。

2. Tenured(年老代)JVM specification 中的Heap 的一部份 年老代存放从年轻代存活的对象。一般来说年老代存放的都是生命期较长的对
象。

3. Perm(持久代) JVM specification 中的Method area 用于存放静态文件,如今Java 类、方法等。持久代对垃圾回收没有显著影响, 但是有些应用可能动态生成或者调用一些class,例如Hibernate 等,在这种时 候需要设置一个比较大的持久代空间来存放这些运行过程中新增的类。持久代大 小通过-XX:MaxPermSize=进行设置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值