java垃圾回收机制
2018-04-09 16:59:11 46 举报
AI智能生成
java垃圾回收机制,便于记忆的javagc脑图
作者其他创作
大纲/内容
gcRoot
就是判断对象可达性的根节点,
什么是gcroot
正在执行的所有方法中的引用
静态变量修饰的对象的引用
运行时常量池中的引用类型常量
String
正在加载的java类
gc算法(Tracing Gc)
通过gcroot集合,通过对象之间的引用关系遍历对象关系图,判断对象可达性的算法
引用计数法(Java没有用)
有引用就++;没有引用就--;为零就回收。缺点无法判断循环引用
标记-清除
从根节点开始遍历,标记活跃对象,清除不可达对象
复制(压缩)
开辟一块相同大小的空间,将活跃对象复制进去,并清除之前内存的所有对象
标记压缩
标记活跃对象,将活跃对象压缩到内存一端,并清除边界外的对象
垃圾回收器
串行收集器
并行收集器
gc多线程,新生代并行,老年代串行
吞吐量
响应时间
cms并发收集器
gc线程与程序线程同时进行
年代划分
新生代
伊甸区
幸存者区*2
老年代
jvm堆中将堆划分为新生代,老年代,永久代
gc触发条件
minorgc
新建的对象会存放在伊甸区,当伊甸区满了触发minorGC
majorGC
发生在老年代的gc,采用标记清除和标记压缩
fullGC
System.gc();
当minorgc复制到老年代的对象多余老年代剩余内存的时候触发
新生代的平均大小高于老年代剩余内存
创建大对象或者大数组过多时
收藏
0 条评论
下一页