为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第16天+GC回收

标签:
Java

课程名称:Java生产环境下性能监控与调优详解

课程章节:第七章

主讲老师:若鱼1919

课程内容:

  1. 思想:枚举根节点,做可达性分析

  2. 根节点:类加载器,Thread,虚拟机栈的本地变量表,static成员,常量引用,本地方法栈等

  3. 方法:

    1. 对象分配:

    2. 对象又现在Eden区分配

    3. 大对象直接进入老年代,-XX:PretenureSizeThreshold,超过这个设定的值,直接进入老年代

    4. 长期存活的对象也进入老年代

    5. Young区采用复制算法(大部分对象都在young区分配的,可用对象其实不多)

    6. Old区采用标记清除或者标记整理算法(Old区声明周期长,其实没有多少垃圾)

    7. 标记清除:分标记和清除两个阶段,先标记,后清除,效率低,而且会产生碎片(因为物理上不是连续的),碎片太多会导致提前GC

    8. 复制:按照容量分成大小两块,每次使用其中一块,当 这块内存用完之后,将这块内存存活的对象放到另外一块上面,而后把第一次使用内存清空。但是,这种方法虽然简单,容易实现,但是空间利用率低,

    9. 标记整理:标记仍和标记清除的做法一样,但是后续步骤不是清理对象,而是让所有存活的对象向一端移动,然后清楚掉边界以外的内存,这样可以避免产生内存碎片,但是整理的过程非常耗费时间。

    10. 分代垃圾回收

课程收获:

今天学习了GC垃圾回收机制,GC回收大概分三种,标记清除,整理,复制算法,和其工作原理,我有时间查查使用场景,还有就是如何进行迭代的。

加油加油,继续努力。


https://img1.sycdn.imooc.com/63e849150001d1de11391083.jpg




点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消