一、概述 java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。 二、对象死亡判定 1、引用计数算法 (1)判定算法:给对象中添加一个引用计数器,每当一个地方引用它时,计数器值就加1;当引 ...
分类:
编程语言 时间:
2017-06-10 20:21:56
阅读次数:
241
GC的问题,主要分为:1、哪些内存需要回收?2、什么时候回收?3、如何回收?这里主要讲第一个问题。 1、哪些内存需要回收? 垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”,哪些已经“死去”(即不可能再被任何途径使用的对象)。 (1)引用计数算法:给对象中添加一个引用计数器 ...
分类:
其他好文 时间:
2017-06-02 13:37:33
阅读次数:
166
引用计数法(java未使用) 1.很老的一个垃圾回收算法 2.通过引用计数来回收垃圾 3.引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0,则对象A就不可能再被使用。 4.弊端: 引用和去引用伴 ...
分类:
编程语言 时间:
2017-05-30 19:32:52
阅读次数:
152
1.垃圾回收如何判定 1.1引用计数法 引用计数法是给对象添加一个引用计数器,当有对该对象的引用时,计数器加1,引用失效时,计数减1,计数器为0时不能再使用.该对象可以被垃圾回收器回收,但是存在一个问题,就是当两个对象相互进行引用时,它们的计数器最终都不会为0,导致垃圾回收器无法回收它们。 1.2可 ...
分类:
其他好文 时间:
2017-05-22 11:07:47
阅读次数:
240
可回收对象的判断方法 1.引用计数算法 2.可达性分析算法 引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。 引用计数算法的缺陷:循环引用 可达性分析算法 可达性分析算法基本原理: 通过一些 ...
分类:
编程语言 时间:
2017-05-21 09:44:42
阅读次数:
143
1. 引用计数法:给对象添加一个引用计数器,每当一个地方引用它,计数器值加1;当引用失效时,计数器值就减1 2. 可达性分析法:当一个对象到GC Roots没有任何引用链相连时,该对象被判断为可回收的对象,主流方法 可作为GC Roots对象的: (1)虚拟机栈中引用的对象(栈帧中的本地变量表); ...
分类:
其他好文 时间:
2017-05-20 17:18:11
阅读次数:
154
当对象不馁引用的时候,这个对象就是死亡的,等待GC进行回收。 1.引用计数法 概念: 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就增加1;当应用失效时,计数器值就减1;任何时刻计数器为0是对象就是不可能再被使用的。 但是: 主流的java虚拟机并没有选用引用计数器算法,其中一个最主 ...
分类:
编程语言 时间:
2017-05-09 15:43:00
阅读次数:
140
一、垃圾回收用到的主要算法 1.引用计数法 算法思路: 给对象中加入一个引用计数器。每当有一个地方引用他时,计数器值就加1;当引用失效时,计数器值就减1。当计数器的值为0时就能够把该对象删除。 算法长处: 实现简单,判定效率高 算法缺点: 难以解决对象之间相互循环引用的问题。 2.标记清除法 算法思 ...
分类:
其他好文 时间:
2017-04-29 09:50:52
阅读次数:
135
在堆中存放着几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象之中哪些还活着,哪些对象已经死去. 判断对象是否已经死亡有以下几种算法: 定义 : 给对象中添加一个引用计数器,当有一个地方引用时,计数器加1,引用失效时,就减1,当对象的引用计数器为0时,对象就是不可再被使用的. ...
分类:
编程语言 时间:
2017-04-11 11:52:52
阅读次数:
205
对象已死吗? 1.引用计数算法(虚拟机并没有使用) 给对象中添加一个引用计数器,每当有一个地方应用它时,计数器值就加1;当引用失败时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。但是它很难解决对象之间相互循环引用的问题。 2.可达性分析算法 通过一系列的称为“GC Roots”的对 ...
分类:
其他好文 时间:
2017-04-07 16:47:51
阅读次数:
257