我是靠谱客的博主 年轻百合,最近开发中收集的这篇文章主要介绍java虚拟机的内存回收机制Minor GC的触发机制Full GC的触发机制Minor GC与Full GC的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

java虚拟机的内存回收机制

  • Minor GC的触发机制
  • Full GC的触发机制
  • Minor GC与Full GC的区别

Minor GC的触发机制

大多数情况下,对象优先在Eden区中分配。当Eden代中没有足够空间进行分配时,虚拟机将发起一次Minor GC。

Full GC的触发机制

  1. 在Minor GC之前,虚拟机会检查老年代最大可用的连续空间是否大于新生代所有对象总空间,如果这个条件,那么Minor GC是安全的。如果不成立,那么虚拟机会查看HandlePromotionFailure是否允许担保失败。如果不允许担保失败,那么将发生Full GC。如果允许,那么会检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小,如果大于,将尝试进行一次Minor GC,如果小于,那么将发生Full GC。
  2. 老年代空间不足(一些大对象会直接在老年代分配)
  3. 方法区空间不足
  4. 调用system.gc,建议虚拟机执行Full GC,但是不必然执行

Minor GC与Full GC的区别

Minor GC指发生在新生代的垃圾回收动作,Minor GC比较频繁,回收速度也比较快。Full GC指发生在老年代的GC,速度一般会比Minor GC慢10倍以上。

最后

以上就是年轻百合为你收集整理的java虚拟机的内存回收机制Minor GC的触发机制Full GC的触发机制Minor GC与Full GC的区别的全部内容,希望文章能够帮你解决java虚拟机的内存回收机制Minor GC的触发机制Full GC的触发机制Minor GC与Full GC的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部