美文网首页
垃圾回收

垃圾回收

作者: 编程喵喵 | 来源:发表于2019-08-25 23:39 被阅读0次

GC

引用计数算法

通关在对象头中分配一个空间来保存该对象被引用的次数。如果该对象被引用则加1,删除引用则减1,当对象的引用计数为0时,那么该对象回收。
引用计数的问题,如果2个对象互相引用则永远不会回收。

可达性分析算法

通过GC roots的一些作为起点,向下搜索,当一个对象到GC roots没有任何链相连时,则证明该对象不可用。解决了引用计数无法解决的“循环依赖”问题。

可作为GC root对象

  • 虚拟机栈中引用的对象
  • 方法区中类静态属性引用的对象
  • 方法区中常量引用的对象
  • 本地方法栈中JNI引用的对象

怎能回收垃圾

标记-清除算法 —>内存碎片问题
复制算法 解决碎片问题,平分代价太高
标记整理算法 内存变动频繁,效率低
分代收集算法 组合拳
Java堆分为新生代和老年代
新生代:对象存活量低,复制算法
老年代:对象存活量高,另外两种算法

Java堆

新生代 分为Eden区 和 Survivor区(分为From和To区):减少被送到老年代的对象,减少major GC的次数
minor GC回收,Eden清空,无法回收的对象到From区,Survivor的两个分区,每次minor GC,复制对象,一个区域为空,减少内存碎片
老年代 占对内存2/3 在major GC才会清理,每次GC都是STW 采用标记-整理算法
大对象 长期存活对象
动态对象年龄

相关文章

  • 简单理解垃圾回收

    什么是垃圾回收? 垃圾回收的是什么? 如何判断为垃圾? 垃圾是怎样被回收的? 垃圾回收哪些区域的内存? 什么是垃圾...

  • JVM(二) GC算法与分代回收策略

    可达性分析 GCRoot场景 垃圾回收算法 分代回收策略 引用 垃圾回收 垃圾回收(Garbage Collect...

  • JVM调优之垃圾定位、垃圾回收算法、垃圾处理器对比

    谈垃圾回收器之前,要先讲讲垃圾回收算法,以及JVM对垃圾的认定策略,JVM垃圾回收器是垃圾回收算法的具体实现,了解...

  • 01垃圾回收机制

    垃圾回收(Garbage Collection,GC) 垃圾回收就是释放垃圾占用的空间 内存的动态分配和垃圾回收,...

  • Java 垃圾收集(GC)浅谈

    Java 垃圾收集(GC)浅谈 为什么需要垃圾回收?哪些内存需要回收?什么时候回收?如何回收? 为什么需要垃圾回收...

  • JVM垃圾回收机制

    JVM垃圾回收 整体思维导图 带着问题理解JVM垃圾回收机制 Java为什么需要垃圾回收机制; 回收哪部分垃圾; ...

  • 垃圾回收

    如何查看当前JVM使用的垃圾回收器? 如何指定使用CMS回收? 如何打印回收日志? 垃圾回收过程 CMS垃圾回收的...

  • JVM常见垃圾回收器介绍

    垃圾回收器简介 在新生代和老年代进行垃圾回收的时候,都是要用垃圾回收器进行回收的,不同的区域用不同的垃圾回收器。分...

  • JavaScript的垃圾回收机制

    大纲 1、认识垃圾回收机制2、垃圾回收机制的原理3、垃圾回收机制的标记策略4、垃圾回收机制与内存管理 1、认识垃圾...

  • 一文带你深入了解JVM性能调优以及对JVM调优的全面总结

    目录 JVM调优 概念 基本垃圾回收算法 垃圾回收面临的问题 分代垃圾回收详述1 分代垃圾回收详述2 典型配置举例...

网友评论

      本文标题:垃圾回收

      本文链接:https://www.haomeiwen.com/subject/pqrlectx.html