垃圾回收算法
2015-06-15 22:14
281 查看
来自深入理解java虚拟机
1.标记-清理法:
标记所有要回收的对象,在标记完后统一将被标记的对象清理掉。但是其缺点是,多次清理的情况下会产生许多的不连续的内存碎片,当分配较大对象却无法找到连续空间时,就要出发另一次的垃圾收集。
2.复制算法
将内存分为等量的两块,当其中一块用完时,将存活的对象复制到另一块上去,并清理已使用过的内存空间。缺点是代价很高,内存利用率太低了。
对于新生代,对象的存活率很低,因此,采用8+1+1的方式,就是当回收的时候将8+1上存活的对象,拷贝到另一个1上,后对8+1的空间进行清理。如果1不够用,将用启用分配担保机制。
3.标记-整理算法
适用老年代:与标记请理法差不多,只是现将存活的对象移向一端,然后将清理边界内存。
4.分代算法
就是2、3的结合运用。
1.标记-清理法:
标记所有要回收的对象,在标记完后统一将被标记的对象清理掉。但是其缺点是,多次清理的情况下会产生许多的不连续的内存碎片,当分配较大对象却无法找到连续空间时,就要出发另一次的垃圾收集。
2.复制算法
将内存分为等量的两块,当其中一块用完时,将存活的对象复制到另一块上去,并清理已使用过的内存空间。缺点是代价很高,内存利用率太低了。
对于新生代,对象的存活率很低,因此,采用8+1+1的方式,就是当回收的时候将8+1上存活的对象,拷贝到另一个1上,后对8+1的空间进行清理。如果1不够用,将用启用分配担保机制。
3.标记-整理算法
适用老年代:与标记请理法差不多,只是现将存活的对象移向一端,然后将清理边界内存。
4.分代算法
就是2、3的结合运用。
相关文章推荐
- hadoop4--深入mapreduce
- OSI Model
- 7.1
- 各家处理器资源网站
- Scala学习
- 十一、第十二观后感
- GrammarNode API
- j2se学习笔记-对象转型
- 基于Gstreamer的TI DSP视频处理框架
- 忍——不需要懂女人
- 编写高质量iOS代码(五)
- Linux应用程序学习之进程通信之管道
- GrammarNode API
- java 框架基础知识(6)----线程本地变更,即ThreadLocal-->Spring事务管理
- 使用EditText的addTextChangedListener(TextWatcher watcher)方法对EditText实现监听
- KMP算法解决字符串出现次数
- hadoop3--编写简单的map reduce
- sap abap 退出操作
- GrammarInterface API
- opencv1:带滚动条的图片二值化处理