类加载

类加载的过程:

加载:

     1.通过一个类的全限定名来获取定义此类的二进制字节流

     2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构

     3.在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口

验证:

准备:

解析:

初始化:

类加载器:

       虚拟机设计团队把类加载阶段中的 "通过一个类的全限定名来获取描述此类的二进制字节流"(也就是类加载里的加载中的第一步) 这个动作放到Java虚拟机的外部去实现,以便让应用程序自己决定如何获取所需要的类。实现这个动作的代码模块称为 "类加载器"。

双亲委派模型:

        从Java虚拟机的角度来讲,只存在两种类加载器:一种是启动类加载器(Bootstrap ClassLoader),它是用C++语言实现的,是虚拟机自身的一部分;另一部分就是所有其他的类加载器,这些类加载器都是由Java语言实现的,独立于虚拟机之外,并且全都继承自抽象类java.lang.ClassLoader。

       从java开发人员的角度来看,可以划分为:

       

     

双亲委派模型类加载过程:

 

       自定义的类加载器的类加载逻辑写在findClass( )方法中,在loadClass( )方法的逻辑里如果父类加载失败,则会调用自己的findClass( )方法来完成加载。

https://www.jianshu.com/p/3556a6cca7e5

https://baijiahao.baidu.com/s?id=1636309817155065432&wfr=spider&for=pc 

https://blog.csdn.net/m0_38075425/article/details/81627349

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值