垃圾回收

垃圾回收算法
标记-清除算法
标记:标记所要回收的对象-----用可达、引用判断
清除:把垃圾清除掉
问题:效率低、出现碎片
复制算法
解决效率问题
先把内存分成两块。一块用来分配,一块空闲区。回收垃圾时,把未标记的复制到空内存区,连续分配,然后清空上面标记的,下次同理。
问题:内存浪费
解决:对堆进行划分三块,

  • Eden 伊甸园80% :新创建的都丢这块区域

  • Survivor1 10%:新创建的都丢这块区域

  • Survivor2 10%:保留,用于复制,连续分配。(内存不够就丢老年代,担保)

  • Tenured Gen :15次丢老年代。
    只浪费10%
    JVM内存结构
    线程共享:堆内存(垃圾回收针对)、方法区
    线程独享:栈、本地方法栈、程序计数器

  • 堆内存:

    • 新生代(内存回收率较高)

      • Eden 伊甸园
      • Survivor 存活区
    • 老年代

      • Tenured Gen

标记-整理算法
分成两块,要垃圾回收时,把垃圾整理到一块,把未标记的整理到一块

分代收集算法

  • 新生代
    复制算法
  • 老年代
    标记整理算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值