2019独角兽企业重金招聘Python工程师标准>>>

一、引用计数算法

  1. 当有一个地方引用这个对象时,计数器加1
  2. 当引用失效时,计数器减1
  3. 当计数器为0时,则对象死亡,等待回收

二、 可达性分析算法

  1. 若一个对象无法通过引用链接到GC Roots时,则判定该对象为可回收对象(第一次标记)
  2. 目前java虚拟机采用的就是 可达性分析算法 判断对象是否可回收
  3. 对于虚拟机判定的可回收对象,还会再次进行标记是否有必要执行finalize()方法
    • 该类中没有覆盖finalize()方法,则没有必要执行finalize()方法
    • 虚拟机已经调用过一次finalize()方法,则没有必要执行finalize()方法
    • 除了上述两种情况,虚拟机都会为对象执行finalize()方法
  4. 若虚拟机判定对象可回收,则此时将对象放到F-Queue中等待执行finalize()方法
  5. 若在覆盖的finalize()方法中,将可回收对象赋值给其他变量,则这个对象在第二次标记时被移除出可回收集合

转载于:https://my.oschina.net/u/3001485/blog/796502

三、垃圾收集之判断对象是否存活相关推荐

  1. 深入理解JVM(三)——JVM之判断对象是否存活(引用计数算法、可达性分析算法,最终判定),Eclipse设置GC日志输出,引用

    本文转载自https://blog.csdn.net/ochangwen/article/details/51406779 本文是基于周志明的<深入理解Java虚拟机> 堆中几乎存放着Ja ...

  2. java中对象的生存期_深入理解Java虚拟机-判断对象是否存活算法与对象引用

    我们知道Java中的对象一般存放在堆中,但是总不能让这些对象一直占着内存空间,这些对象最终都会被回收并释放内存,那么我们如何判断对象已经成为垃圾呢?这篇文章会提出两种算法解决这个问题.另外,本文还要谈 ...

  3. 垃圾回收器判断对象是否存活

    转载自:http://blog.csdn.net/ochangwen/article/details/51406779 本文是基于周志明的<深入理解Java虚拟机> 堆中几乎存放着Java ...

  4. js之删除对象属性的三种方法 判断对象中是否有某一属性的四种方法

    js之删除对象属性的三种方法 & 判断对象中是否有某一属性的四种方法 示例 1.基础版 var a = { id: 18, age: 20, name: "zhangsan" ...

  5. 如何判断对象是否存活之根搜索算法

    根搜索算法有没有人了解过的,在垃圾回收机制里面判断对象存活,主要是使用根搜索算法进行实现的,根搜索算法可能稍微有点抽象,算法是怎么进行实现的,又叫GCRoots,类似于树形结构一样的,他怎么样进行实现 ...

  6. 如何判断对象是否存活之引用计数发

    垃圾回收机制是怎么判断一个对象是否存活的,为什么要讲这个呢,这个讲完你就明白,新生代是怎么做晋升的,他的存活有几个方向点,垃圾回收对象是怎么判断存活的,哪几种,首先第一种引用计数法,根搜索法,GC r ...

  7. JVM判断对象是否存活

    引用计数法 可达性分析算法 引用计数法 给对象添加一个引用计数器,每当有一个地方引用,计数器就加1,当引用失效,计数器减1,计数器为0的对象没有被使用,Java中没有使用引用计数法,原因是引用计数法无 ...

  8. JVM怎么判断对象是否存活

    https://blog.csdn.net/qq_29860591/article/details/111244593

  9. 深入理解Java虚拟机(第三版)-- 判定对象存活算法、引用、回收方法区

    引用记数法 很多教科书判断对象是否存活的算法是这样的:在对象中添加一个引用计数器,每当有一个地方 引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可 能再被使用的 ...

最新文章

  1. docker简要学习
  2. 关于VS中区分debug与release,32位与64位编译的宏定义
  3. Kinect深度图像滤波
  4. docker-macvlan网络
  5. 配置oracle 11g环境,oracle 11g 的安装环境的配置
  6. Spring Boot——[Unable to start LiveReload server]解决方案
  7. android 高度百分比,如何在Android中进行百分比高度和宽度?
  8. hadoop 自定义分区
  9. 提前泄露小米10至尊版,博主赔偿100万;传字节跳动实习生删除GB以下所有机器学习模型;​快手宣布7月将取消大小周|极客头条
  10. MySql存储过程异常处理示例
  11. js判断操作系统与浏览器
  12. java开发的格式与书写规范
  13. java坦克大战爆炸效果_用java做坦克大战--主要类和基本功能实现
  14. 如何写出有吸引力的软文?经典软文案例分析
  15. 杨令云玩过的那些FC游戏-英烈群侠传(一)
  16. 电池相关---电池保护
  17. 【工具-AWVS】AWVS安装与使用
  18. 给所有男人和女人的人生忠告
  19. mysql 批量插入数据方法_mysql大批量插入数据的4种方法示例
  20. zookeeper基本讲解(Java版,真心不错)

热门文章

  1. 防止网页被嵌入框架的代码(续)
  2. 第五章(5)Libgdx应用框架之线程
  3. OpenFlow Switch — 1.3 规范
  4. xshell自动化脚本
  5. SecureCRT自动保存窗口数据到文件,自动保存日志,每行添加时间戳
  6. 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...
  7. HDU 2243 考研路茫茫——单词情结(自动机)
  8. 有赞11·11:全链路压测方案设计与实施详解
  9. H5页面遮罩弹框下层还能滚动的问题
  10. 时隔这么长时间,又回来写博客了