Java内存回收
来源:互联网 发布:淘宝粉丝红包 编辑:程序博客网 时间:2024/06/06 04:37
判断对象是否已死
判断算法
- 引用计数法
- 可达性分析算法
Java的四种引用
- 强引用
- 软引用(还有用但并非必需,二次回收的目标)
- 弱引用(非必需对象,垃圾回收目标)
- 虚引用(垃圾回收时收到系统通知)
finalize方法作用
对象被第一次标记时,系统判断其是否需要执行finalize方法,如果对象没有实现finalize方法,或者finalize方法已经执行过,则系统判断为不需要执行。
如果需要执行finalize方法,则开始执行,第二次标记和筛选时判断对象是否成功拯救自己,如果成功拯救,则将其在回收集合中移除,否则进行回收。
垃圾回收算法
- 标记-清除算法
- 复制算法
- Eden区 8
- Survivor区 1
- 标记-整理算法
- 分代收集算法
垃圾收集器
- ParNew参数
- -XX:SurvivorRatio(Eden:Survivor)
- -XX:PretenureSizeThreshold 直接晋升老年代的大小
- -XX:HandlePromotionFailure 是否允许担保失败
- -XX:+UseConcMarkSweepGC(默认使用ParNew)
- -XX:+UseParNewGC(强制指定)
- Parallel Savenge参数
- -XX:GCTimeRatio 设置吞吐量大小
- -XX:MaxGCPauseMillis 设置停顿时间
- -XX:+UseAdaptiveSizeolicy GC自适应调节策略
- CMS回收过程
初始标记->并发标记->重新标记->并发清除 - G1回收过程
初始标记->并发标记->最终标记->筛选回收 - 垃圾回收器参数总结
- UseXXXGC(使用XXX回收算法)
- SurvivorRatio
- MaxTenuringThreshold:晋升老年代的年龄
内存分配与回收策略
- 对象优先在Eden区分配
- 空间不够则发起Minor GC
- 大对象直接进入老年代
- 长期存活的对象将进入老年代
- 动态对象年龄判定
- 如果在Survivor空间中相同年龄所有对象的大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代。
- 空间分配担保
0 0
- java内存回收机制
- Java的内存回收
- Java 内存回收机制
- java内存回收机制
- java 的内存回收
- Java内存回收算法
- Java内存回收机制
- JAVA 内存回收机制
- Java内存回收机制
- java内存回收相关
- java 内存回收机制
- java内存回收机制
- Java内存回收
- java 内存回收
- java内存回收----引用
- Java内存回收机制
- Java内存回收机制
- java内存回收机制
- 火爆朋友圈的柏拉图性格标签生成器源码下载
- Android基础
- Android UI设计(引导界面):ViewPager之三PagerTabStrip与PagerTitleStrip添加标题栏的区别
- mybatis笔记
- La3523 Knights of the round table
- Java内存回收
- MAC上安装使用KYLIN(OLAP工具)完整版
- 关于C++ 顶层const和底层const对拷贝操作的影响
- [Codeforces 697C] PLEASE (矩阵特征向量)
- 寻找【NOIP2016提高A组模拟7.17】
- usaco 2.2.2 subset
- hadoop平台安装搭建
- Objective-c中.m、.h、.mm文件
- 【JZOJ4637】大鱼海棠