泰然世界

导航

 

2019年4月11日

摘要: 类需要同时满足以下三个条件才能算是无用的类: 1.该类所有的实例都已经被回收,也就是java堆中不存在类的任何实例 2.加载该类的ClassLoader已经被回收 3.该类对应的java.lang.Class对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。 阅读全文
posted @ 2019-04-11 10:38 泰然世界 阅读(702) 评论(0) 推荐(0) 编辑
 
摘要: java是通过可达性分析(Reachability Analysis)来判断对象是否存活的。这个算法的基本思路就是通过一系列的称为“GC Roots”的对象作为起点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain)。当一个对象到GCroots没有任何引用链相连(从 阅读全文
posted @ 2019-04-11 09:52 泰然世界 阅读(252) 评论(0) 推荐(0) 编辑
 
摘要: 判断对象是否存活的算法:给对象中添加一个引用计数器,每当有一个地方引用他时,计数器就加1,当引用失效时,计数器值就减1,任何时刻计数器为0的时候对象就是不可能在被使用的。 主流java虚拟机里面没有选用计数算法来管理内存,其中主要原因是听很难解决对象直接相互循环引用的问题。 阅读全文
posted @ 2019-04-11 09:42 泰然世界 阅读(121) 评论(0) 推荐(0) 编辑