news 2026/2/18 1:59:49

JVM中的类加载Minor GC与Full GC

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JVM中的类加载Minor GC与Full GC

目录

什么是类加载器? 常见的类加载器?

双亲委派模型

为什么要打破双亲委派模型

Minor Gc 和 Full GC 有什么不同呢?Minor GC与Full GC分别在什么时候发生?


什么是类加载器? 常见的类加载器?

BootstrapClassLoader:启动类加载器

最顶层的加载类,由C++实现,负责加载JAVA_HOME/jre/lib目录下的jar包和类,(如String、System等)

ExtensionClassLoader:扩展类加载器

它负责加载JRE的扩展目录(JAVA_HOME/jre/lib/ext 下的类)中JAR包的类

ApplicationClassLoader:系统类加载器

面向我们用户的加载器,负责加载当前应用classpath下的所有jar包和类

双亲委派模型

双亲委派模式:

  • 在类加载的时候,系统会首先判断当前类是否被加载过。已经被加载的类会直接返回,否则才会尝试加载。

  • 加载器加载类时先把请求委托给自己的父类加载器执行, 直到顶层的启动类加载器. 父类加载器能够完成加载则成功返回, 不能则子类加载器才自己尝试加载.

  • 简而言之:自底向上检查类是否被加载, 自顶向下尝试加载类

优点:

  • 避免类的重复加载

  • 避免Java的核心API被篡改, 保证安全

为什么要打破双亲委派模型

但是使用双亲委派也存在一定的局限性,在正常情况下,用户代码是依赖核心类库的,所以按照正常的双亲委派加载流程是没问题的;

但是在加载核心类库时,如果需要使用用户代码,双亲委派流程就无法满足;

比如在使用JDBC时, 利用DriverManager.getConnection获取连接

时,就会存在这样的问题。

  • DriverManager是由Bootstrap ClassLoader加载的,在加载DriverManager时,会执行其静态方法,加载初始驱动程序;

  • 但是这些实现类基本都是第三方厂商提供的,根据双亲委派原则,第三方的类不可能被Bootstrap ClassLoader加载。

  • 所以这时候就需要打破双亲委派模型来进行加载.

Minor Gc 和 Full GC 有什么不同呢?Minor GC与Full GC分别在什么时候发生?

  • Minor GC是发生在新生代的垃圾收集动作,所以Minor GC非常频繁,一般回收速度也比较快。

  • Full GC 指的是针对新生代、老年代、永久代的全体内存空间的垃圾回收. Full GC回收速度更慢, 发生频率也更低.

什么时候触发Minor GC

  • Eden区域满了

  • 新创建的对象大小 > Eden所剩空间

什么时候会触发full GC

  • System.gc()方法的调用

  • 老年代空间不足

  • 永久代空间不足

  • 统计得到的Minor GC晋升到老年代的平均大小大于老年代的剩余空间

  • 堆中分配很大的对象

所谓大对象,是指需要大量连续内存空间的java对象,例如很长的数组,此种对象会直接进入老年代,而老年代虽然有很大的剩余空间,但是无法找到足够大的连续空间来分配给当前对象,此种情况就会触发JVM进行Full GC。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/14 9:01:22

基于Java+SpringBoot+SSM办公管理系统(源码+LW+调试文档+讲解等)/办公系统/管理系统/办公自动化系统/企业办公管理系统/智能办公管理系统/协同办公管理系统

博主介绍 💗博主介绍:✌全栈领域优质创作者,专注于Java、小程序、Python技术领域和计算机毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2025-2026年最新1000个热门Java毕业设计选题…

作者头像 李华
网站建设 2026/2/5 13:09:29

**发散创新:AI寻路算法的设计与实现**随着人工

发散创新:AI寻路算法的设计与实现 随着人工一、引言 随着机器学习、深度学习等技术的不断进步,AI在路径规划、寻路算法等领域的应用逐渐显现。本文将介绍一种新型的AI寻路算法,该算法能够自动学习并优化寻路策略,提高寻路效率。 三…

作者头像 李华
网站建设 2026/2/16 0:25:30

新手必看:Altium Designer中过孔建模与仿真配置

Altium Designer过孔建模实战:从“画个孔”到精准仿真,新手避坑全指南 你有没有遇到过这种情况——电路板第一次投板,信号测试时却发现眼图闭合、误码频发?查来查去,问题居然出在那个你认为“最不起眼”的小过孔上&…

作者头像 李华
网站建设 2026/2/6 21:58:41

实测!2026制造业数字人TOP4榜单:谁能真正适配产线刚性需求?

TOP1:集之互动核心优势与技术特点集之互动数字人凭借三大核心技术优势稳居榜首。其0.8秒实时问答响应体系在产线实时交互场景中展现出压倒性优势。低成本端侧推理技术通过本地化轻量模型部署结合流式计算,将综合交互成本降至竞品的1/5,真正实…

作者头像 李华
网站建设 2026/2/16 18:41:27

013-webpack:新东方

网站地址:新东方 找加密参数定位 只需要逆向sign即可: 我们直接xhr断点: 打上断点看看怎么个事儿: 然后我们看看ot是啥: 直接看sign生成的位置发现t竟然是刚才那个对象转化成的字符串,后面那个Ye.b是一个…

作者头像 李华