java 垃圾回收算法
来源:互联网 发布:曾亮 redux源码 编辑:程序博客网 时间:2024/05/18 01:05
判断对象已死
引用计数法和可达性分析法 jvm使用可达性分析法,前者无法解决循环引用
4种引用
强引用 new出来的对象
软引用 SoftReference 在发生内存溢出之前,会回收这些对象,回收完之后还是溢出,报异常
弱引用 WeakReference 在下一次垃圾回收的时候一定会回收
虚引用 PhantomReference 可以使用它来在垃圾回收的时候得到一个通知
finalize()方法
这个方法在垃圾回收的时候调用一次,如果不可达的对象重新被引用,那么它会逃脱垃圾回收
方法区回收
回收常量和回收对象类似
回收类需要满足
没有该类的是示例,
该类的类加载器已经回收
该类的Class对象没有被引用
垃圾回收算法
标记清楚 效率不高产生大量碎片
复制 内存分2块,每次用一半,存活的对象复制到另外一半,比较浪费空间,新生代使用复制算法,但是不是1:1
而是新生代分为1块eden个2块survivor,每次使用1块eden个1块survivor,将存活的对象移到另一块survivor,如果放不下,会被担保至老年代。
Hotspot虚拟机默认8:1
标记整理
分代收集
新生代使用复制算法,因为存活的对象较少,只需要复制少量存活的对象,
老年代使用标记-整理或者标记清除算法,因为对象大部分是存活的
0 0
- java垃圾回收算法
- java 垃圾回收 算法
- Java 垃圾回收算法
- java垃圾回收算法
- java垃圾回收算法
- java垃圾回收算法
- java垃圾回收算法
- java垃圾回收算法
- JAVA - 垃圾回收算法
- java垃圾回收算法
- Java垃圾回收算法
- java 垃圾回收算法
- JAVA垃圾回收算法
- Java垃圾回收算法
- Java 垃圾回收算法
- Java垃圾回收算法
- Java 垃圾回收算法
- Java垃圾回收算法
- 第11周项目1-验证算法(1)层次遍历算法的验证
- 第十二周项目1——图基本算法库
- MFC窗口初始化的cs参数
- 【第十二周 项目1-图基本算法库】
- 第十二周项目2-操作用邻接表存储的图
- java 垃圾回收算法
- 第12周项目1-图基本算法库
- SAP中创建新数据表的过程
- 第12周项目1-图基本算法库
- [Codeforces297D]Color the Carpet(构造)
- 转载自微信公众号文章《互相关(cross-correlation)中的一些概念及其实现 》
- eclipse 异常 Subversion Native Library Not Available解决方案
- Java序列化之serialVersionUID
- 七牛云存储之Base64图片上传