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的头像guozi
上一篇 2024年6月5日
下一篇 2024年6月7日

相关推荐

  • 河北服务器租用

    你是否曾经听说过云服务器?它究竟是什么?它又有着怎样的优势和用途?如果你对这些问题感兴趣,那么不妨继续阅读下去。今天我们将带您探索河北地区的服务器租用市场,了解这一领域的发展情况以…

    行业资讯 2024年3月20日
    0
  • 离线文件无法发送?qq服务器拒绝连接的原因是什么

    你是否曾经遇到过这样的情况,想要发送离线文件给朋友,却发现无论怎么尝试都无法成功?是的,QQ服务器拒绝连接可能就是导致这一问题的原因。但是,什么是离线文件?为什么QQ服务器会拒绝连…

    行业资讯 2024年4月3日
    0
  • 域名被墙要去哪解决,域名被墙还有救吗

    域名屏蔽是互联网行业的常见问题,给网站运营商带来了很大的麻烦。那么什么是域名被屏蔽呢?为什么会出现这种情况?如何判断我的域名是否被屏蔽?它对您网站的运营有何影响?让我们一起探讨这个…

    行业资讯 2024年5月7日
    0
  • seo关键词优化的价格是多少?

    SEO关键词优化,作为搜索引擎优化行业中不可或缺的一环,其价格究竟是多少呢?在这个信息爆炸的时代,如何通过关键词优化来提升网站排名已经成为了每个网站主人必须面对的问题。但是什么是S…

    行业资讯 2024年3月23日
    0

发表回复

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