1. 垃圾回收 Java垃圾回收(GC)分为两个阶段: 判定,判定哪些对象可以被回收,使用可达性分析算法; 回收,回收那些无用的垃圾对象,常用的算法有:标记—清除算法、复制算法、标记—整理算法;2. 可达性分析 当前的主流虚拟机都是使用可达性分析算法来判定一个对象是否还存活。 Java虚拟机中标.....
分类:
编程语言 时间:
2015-09-05 17:46:30
阅读次数:
183
本文主要内容:GC的概念GC算法 引用计数法(无法解决循环引用的问题,不被java采纳) 根搜索算法 现代虚拟机中的垃圾搜集算法: 标记-清除 复制算法(新生代) 标记-压缩(老年代) 分代收集可触及性Stop-The-World一、GC的概念:GC:G...
分类:
编程语言 时间:
2015-08-20 10:25:50
阅读次数:
169
【138-Copy List with Random Pointer(拷贝有随机指针的单链表)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题 A linked list is given such that each node contains an additional random pointer which could point to any node in t...
分类:
编程语言 时间:
2015-08-18 07:55:06
阅读次数:
164
1、标记清除算法:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。缺点是效率问题和产生大量不连续的内存碎片,导致程序后期需要分配大对象时无法找到足够的连续内存而不得不提前出发另一次垃圾收集动作。
2、复制算法:将可用内存划分为大小相等的两块,每次只使用其中的一块,当这一块的内存用完了,就将还存活着的对象复制到另一块上面,然后再把已使用过的内存空间一次清理掉。
3、标记整理...
分类:
编程语言 时间:
2015-07-31 22:04:39
阅读次数:
170
【收集算法的选择】 新生代,由于只有少量的对象能存活下来,所以选用“复制算法”,只需要付出少量存活对象的复制成本。 老年代,由于对象的存活率高,没有额外的空间分担,就必须使用“标记-清除”或“标记-整理”算法。 那么老年代也使用标记-复制策略吧?当然不行!老年代中的对象可不像新生代中的,每次回...
分类:
其他好文 时间:
2015-07-08 22:19:12
阅读次数:
139
1、对象优先分配在Eden区,如果Eden区没有足够的空间时,虚拟机执行一次Minor GC。
2、大对象直接进入老年代(大对象是指需要大量连续内存空间的对象)。这样做的目的是避免在Eden区和两个
Survivor区之间发生大量的内存拷贝(新生代采用复制算法收集内存)。
3、长期存活的对象进入老年代。虚拟机为每个对象定义了一个年龄计数器,如果对象经过了1次Minor GC那么对象会...
分类:
编程语言 时间:
2015-07-03 09:12:46
阅读次数:
171
一、复制数组算法//数组复制算法public class Test{ public static void main(String[] args){ int[] arrA = {100,800,500,600,700}; int[] arrB...
分类:
编程语言 时间:
2015-05-24 14:06:59
阅读次数:
161
摘要:当前商业虚拟机的垃圾收集都采用“分代收集”(Generational Collection)算法,这种算法并没有什么新的思想,只是根据对象的存活周期的不同将内存划分为几块。一般是把Java堆分为新生代和老年代,这样就可以根据各个年代的特点采用最适当的收集算法。在新生代中,每次垃圾收集时都发现有大批对象死去,只有少量存活,那就选用复制算法,只需要付出少量存活对象的复制成本就可以完成收集。而老年...
分类:
编程语言 时间:
2015-01-23 11:13:30
阅读次数:
219
Parallel Scavenge收集器是JAVA虚拟机中垃圾收集器的一种。和ParNew收集器类似,是一个新生代收集器。使用复制算法的并行多线程收集器。
1、特点
Parallel Scavenge收集器的关注点与其他收集器不同, ParallelScavenge收集器的目标则是达到一个可控制的吞吐量(Throughput)。所谓吞吐量就是CPU用于运行用户代码的时间与CPU总消耗时间的比值...
分类:
编程语言 时间:
2015-01-19 14:25:01
阅读次数:
312
本篇主要阐述一下java垃圾收集的几种算法。其中主要包括:复制算法、标记-清除算法、标记-压缩(清理)算法和分代收集算法。下面简单介绍一下其实现的原理。
1、复制算法...
分类:
编程语言 时间:
2014-12-11 00:23:49
阅读次数:
307