对象被判定为垃圾的标准

1、没有被其他对象引用

判定对象是否为垃圾的算法

1、引用计数算法(不是主流垃圾回收机制)

  1.1 判定对象的引用数量

    1.1.1 通过判断对象的引用数量来决定对象是否可以被回收

    1.1.2 每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1

    1.1.3 任何引用计数为的对象实例可以被当作垃圾收集

  优点:执行效率高,程序执行受影响较小

  缺点:无法检测出循环引用的情况,导致内存泄漏(对象一直占用堆内存,没被回收)

public class ReferenceCounterProblem {
public static void main(String[] args) {
MyObject object1 = new MyObject();
MyObject object2 = new MyObject(); object1.childNode = object2;
object2.childNode = object1;
}
}

2、可达性计数算法(主流)

通过判定对象的引用链是否可达来决定对象是否可以被回收

---》什么可以作为GC Root的对象?

a.虚拟机栈中引用的对象(栈帧中的本地变量表)

b.方法区中的常量引用的对象

c.方法区中的类静态属性引用的对象

d.本地方法栈中JNI(Native方法)的引用对象

e.活跃线程的引用对象

最新文章

  1. 基于InstallShield2013LimitedEdition的安装包制作
  2. 《大道至简》第三章读后感+ppt课后作业
  3. Android Studio开发JNIproject
  4. Uploadify 3.2 参数属性、事件、方法函数详解
  5. c++多线程崩溃错误1
  6. m序列产生器
  7. Node.js 原理简介
  8. 后台管理UI模板
  9. 从content-type设置看Spring MVC处理header的一个坑
  10. javascript小记三则:ASP.NET启动web调试,窗体自动放大的方法
  11. 【adb】执行adb devices 设备offline
  12. LOJ#510 北校门外的回忆(找性质+倍增+线段树)
  13. 规则 防火墙 iptables input accept【转】
  14. 设计模式之Proxy
  15. QT creator 调试问题
  16. Python菜鸟之路:原生Ajax/Jquery Ajax/IFrame Ajax的选用
  17. oracle的sql语句训练
  18. Linux(CentOS)下SVN命令使用实例[转]
  19. linux中添加PHP的mongoDB支持扩展
  20. It's the loneliest feeling not to know who you are.

热门文章

  1. linux的僵尸进程和孤儿进程
  2. liteos 中断机制(四)
  3. 洛谷 - P2774 - 方格取数问题 - 二分图最大独立点集 - 最小割
  4. poj2186【利用强连通分量】
  5. 黑客攻防技术宝典web实战篇:利用信息泄露习题
  6. SpringBoot的配置文件加载顺序以及如何获取jar包里的资源路径
  7. iOS UITableView reloadData 刷新结束后执行后续操作
  8. multiprocessing多进程模块
  9. HDOJ 5475 An easy problem
  10. DFS水题 URAL 1152 False Mirrors