美文网首页
2018-04-27 常见垃圾回收算法

2018-04-27 常见垃圾回收算法

作者: 江江江123 | 来源:发表于2018-04-27 17:53 被阅读0次

3问:什么要回收,什么时候回收,怎么回收

判断对象要回收的算法:

1引用计数算法:添加计数器,如果被引用+1,引用失效-1,计数为0的对象可以被回收。(但主流jvm采用的不是该方法,原因;很难解决循环引用问题)

2可达性分析算法:原理:创造GC root对象,可回收的对象为与GC root 无直接和间接引用的对象

java中可作为GC root的对象:
虚拟机栈中的引用对象;
方法区中类静态属性应用引用对象;
方法去中常量引用对象;
本地栈 被native方法修改的引用对象;
java 中的回收流程:gc回收->发现可回收对象->执行finalize()(only one) ->是否被引用->是:不回收;否:回收

一般垃圾收集算法:

1标记-清除算法:
将标记为可回收的对象清除
存在问题效率低,占用空间大
2复制算法:
将内存一分为2,每次可回收的对象清理后,将剩余的对象按顺序放到另一半;
优点:提高了效率;缺点:内存减半
应用:回收新生代(特点:98%会死),将内存分为1大Eden2小Survivor,默认8:1:1;新对象放eden,将eden回收后的对象放在一个Survivor,下次回收eden+Survivor的对象,剩余对象放在另一个Survivor,以此类推;
3标记整理算法
应对老年代对象(特点:存活率高),在标记完成后,存活对象向一段移动,完成后清除边界外的对象
4分代收集算法:根据对象的活动周期将对象分为新生代,老年代;新生代使用复制算法,老年代使用标记-清除/整理算法

相关文章

  • 2018-04-27 常见垃圾回收算法

    3问:什么要回收,什么时候回收,怎么回收 判断对象要回收的算法: 1引用计数算法:添加计数器,如果被引用+1,引用...

  • 常见垃圾回收算法

    什么是垃圾回收(GC) 垃圾回收机制是一种找到内存中的垃圾将其释放并回收空间的机制 常见的垃圾回收算法 引用计数法...

  • 深入理解Java虚拟机之垃圾收集算法篇

    这篇文章将讲解垃圾回收的概念以及对那些区域进行垃圾回收,最后讲解几种常见的垃圾回收算法。 概述 什么叫垃圾收集器?...

  • 每天一个知识点(7)-JVM-垃圾收集器

    上一节介绍了垃圾回收算法,垃圾收集器是垃圾回收算法的具体实现。这里以常见的垃圾收集器的组合方式进行介绍: Seri...

  • JVM垃圾回收

    GC垃圾回收流程 垃圾收集算法 垃圾回收算法 引用类型 垃圾回收的时机 1.垃圾收集算法 (1).引用计数算法含义...

  • js语言性能优化以及相关概念理解

    概要 内存管理 垃圾回收与常见的 GC 算法 V8 引擎的垃圾回收 performance 工具 代码优化示例 内...

  • JVM垃圾回收算法

    Java基础:JVM垃圾回收算法 [toc] 参考:Java基础:JVM垃圾回收算法图解JVM垃圾回收算法 总结:...

  • 对 Java 内存的一些理解-[Android_YangKe]

    Java 垃圾回收机制优点 Java 内存模型 什么是内存抖动 什么是内存泄漏 垃圾回收机制常见算法 Java 垃...

  • 垃圾回收算法、回收机制与总结 ---JVM

    垃圾回收算法、回收机制与总结 ---JVM 一、垃圾回收算法 1.标记清除 标记--清除算法将垃圾回收分为两个阶段...

  • javaScript 性能优化(学习笔记)

    内容概要 内存管理 垃圾回收和常见的GC算法 V8引擎的垃圾回收 Performance 工具 代码优化实例 内存...

网友评论

      本文标题:2018-04-27 常见垃圾回收算法

      本文链接:https://www.haomeiwen.com/subject/wszblftx.html