java类加载机制+双亲委派模型详细分析

我们编写的java文件是怎么运行的呢? 带着这个疑问,让我们开始吧

假如我现在编写了一个 test.java文件, 首先源文件会经过这么一些过程,加载>验证>准备>解析>初始化>使用。

1、加载, 也就是说从我们磁盘并通过IO读取字节码文件,当使用到该类的时候才会加载,而不是整个项目全部的class文件多会加载的JVM内存去的。

2、验证: 在JVM层面会对java编译的class文件进行, 校验字节码的正确性,防止被篡改等。

3、准备: 这个阶段给类的静态变量分配内存,并赋予默认值。

4、解析: 将符号引用 替换 直接引用, 该阶段会把一些静态方法,比如main方法,替换为指向数据所存内存的指针或者句柄、(这个就是直接引用) 。

5、初始化阶段: 该阶段是对类的静态变量进行初始化指定的值,执行静态代码块。

双亲委派模型

双亲委派模型详解, 双亲委派模型由三大类加载器组成,父加载器、扩展类加载器、应用加载器。

1、BootStart ClassLoad 父加载器,主要负责jre中核心类库的加载比如rt.jar

2、EXT ClassLoad 扩展类加载器,主要负责ext扩展包里面的jar包

3、App ClassLoad 应用类加载器,主要负责我们自己编写的java类文件,以及依赖的jar包。

4、自定义加载器:   负责用户自定义路径下的类以及jar包。(打破双亲委派的核心)

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/90593.html

(0)
guozi's avatarguozi
上一篇 2024年6月5日 下午6:00
下一篇 2024年6月7日 上午9:17

相关推荐

  • 如何避免营销风险,怎么避免营销型网站被攻击呢

    保护营销网站的安全需要企业解决许多方面的问题,包括建立彻底的安全策略、保持软件更新、加强身份验证措施、加密数据传输、确保敏感数据的安全、备份、权限限制和加强网络安全培训等。只有将这…

    行业资讯 2024年5月10日
    0
  • 大连网站制作

    大连网站制作,是当今互联网时代必不可少的一项服务。它可以帮助企业建立自己的线上形象,提升品牌知名度,吸引更多的潜在客户。那么什么是网站制作?它又有着怎样的重要性?大连地区的网站制作…

    行业资讯 2024年4月16日
    0
  • Python 进度条的神器tqdm

    大家好,在编写Python脚本时,尤其是那些需要处理大量数据或者执行耗时操作的脚本,监控任务进度是非常重要的。 有没有想过在你的Python脚本中添加一个进度条,让你可以清楚地看到…

    2024年6月4日
    0
  • seo优化ppt

    你是否对SEO优化有所了解?它是如何帮助企业提升排名、吸引流量的呢?今天,我们将为您揭开SEO优化的神秘面纱。什么是SEO优化?它的目的和意义又是什么?制作SEO优化PPT的步骤和…

    行业资讯 2024年4月5日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注