GC中的垃圾:特指存在于内存中、不会再使用的对象。 内存泄漏和内存溢出的区别: 内存泄漏:内存空间忘记回收,垃圾对象永远无法被回收 内存溢出:垃圾对象(不满足回收条件)所耗内存持续上升,导致内存溢出。 1 常用的垃圾回收算法 引用计数法、标记压缩法、标记清除法、复制算法和分代、分区 1)引用计数法: ...
分类:
编程语言 时间:
2016-12-19 08:42:32
阅读次数:
235
一、串行JDK1.5前的默认算法缺点是只有一个线程,执行垃圾回收时程序停止的时间比较长语法-XX:+UseSerialGC新生代、老年代使用串行回收新生代复制算法老年代标记-压缩示例图测试代码 //-Xmx20m -Xms20m -Xmn2m -XX:+UseSerialGC -XX:+PrintG... ...
分类:
编程语言 时间:
2016-11-25 12:13:04
阅读次数:
348
物理地址 堆的物理地址分配对对象是不连续的。因此性能慢些。在GC的时候也要考虑到不连续的分配,所以有各种算法。比如,标记-消除,复制,标记-压缩,分代(即新生代使用复制算法,老年代使用标记——压缩) 栈使用的是数据结构中的栈,先进后出的原则,物理地址分配是连续的。所以性能快。 内存分别 堆因为是不连 ...
分类:
其他好文 时间:
2016-10-08 02:21:52
阅读次数:
169
引用计数法标记清除法复制法(新生代,适合垃圾对象多,存活对象少)标记压缩法(老年代)相当于标记清除算法+内存碎片整理强引用,软引用(SoftReference),当堆空间不足时回收,软引用不会引起内存溢出弱引用(WeakReference),发现即回收虚引用垃圾回收器:串行回收器:-XX:..
分类:
其他好文 时间:
2016-02-16 15:11:06
阅读次数:
139
本文主要内容:GC的概念GC算法 引用计数法(无法解决循环引用的问题,不被java采纳) 根搜索算法 现代虚拟机中的垃圾搜集算法: 标记-清除 复制算法(新生代) 标记-压缩(老年代) 分代收集可触及性Stop-The-World一、GC的概念:GC:G...
分类:
编程语言 时间:
2015-08-20 10:25:50
阅读次数:
169
0. 垃圾回收算法概述标记清除算法 | |--- 标记时间过长 | | | |--- CMS:通过初始标记、并发标记和重新标记来拆分标记过程 | |--- 垃圾回收后,导致内存碎片过多 | |--- 标记压缩算法:将垃圾移动到一侧来减少内存碎片 | |--- 标记清除算法:...
分类:
编程语言 时间:
2015-07-11 16:20:48
阅读次数:
200
本篇主要阐述一下java垃圾收集的几种算法。其中主要包括:复制算法、标记-清除算法、标记-压缩(清理)算法和分代收集算法。下面简单介绍一下其实现的原理。
1、复制算法...
分类:
编程语言 时间:
2014-12-11 00:23:49
阅读次数:
307
Mark-Compact 标记压缩算法代托管代码/非托管代码弱引用(Weak References弱引用(weak reference)可以保持对对象的引用,同时允许垃圾收集器在它认为适当的垃圾收集时间释放对象,回收内存。假设有一个对象创建相对便宜,但需耗费大量的内存,如果希望保持这个对象,在应用程...
分类:
Web程序 时间:
2014-08-17 15:33:32
阅读次数:
288