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. 深入理解Eureka之源码解析
  2. dede 两种幻灯代码
  3. Fiddler无法抓取HTTPS的问题,Fiddler证书无法安装终极解决方案,
  4. 面试必问:设计模式遵循的面向对象设计原则!
  5. 仿微信公众平台“打标签”功能~~~
  6. Hibernate 性能优化之二级缓存
  7. 写给准备找工作的同志们!!!!(转载)
  8. 第五十三期:公司如何选择数据库?DynamoDB、Hadoop和MongoDB 大比拼
  9. 十位值得关注的Java顶级专家
  10. 神级代码编辑软件(Sublime Text 3) v3.3114 汉化特别版
  11. 架构初识之 —— 使用kafka进行商品维度化缓存解决方案
  12. 4-2 父子组件的数据传递
  13. The All-purpose Zero-HDU5773
  14. docker编配和服务发现
  15. 锐捷笔试题java_2018秋招锐捷笔试试题
  16. 关于如何在Matlab中构造三维几何,以及三棱柱实例演示
  17. 安装opensips时创建MySQL表_Centos7.6安装opensips并实现通话成功
  18. 利用闲置电脑安装虚拟机搭建hadoop集群
  19. 人工智能到底是什么?AI可以涵盖哪些领域?
  20. import 与 import()

热门文章

  1. Harris’s Linked List
  2. shell MAC 地址 校验
  3. Tensorflow MNIST浅层神经网络的解释和答复
  4. 进程注入的研究与实现
  5. Hyper-V 3.0部署PART 14:准备仲裁磁盘
  6. C#实现web信息自动抓取
  7. java读取mysql配置文件_一文读懂 MySQL 主从复制读写分离
  8. Python Module — WSME
  9. 互联网协议 — VRRP 虚拟路由器冗余协议
  10. java jdk动态代理学习记录