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