00:00
那接着的话呢,我们来看一下这个叫应用程序类加载器,或者呢也成为呢叫系统类加载器,那它呢也是用Java语言来编写的,它的具体实现呢,是在这个later name呢,有个叫APP class,那这块我们来看一下这个相应的这个源码。啊OK,过来之后呢,那ctrl o一下,我们这块来找一下啊,这个直接在这就能看着是吧,叫APP class,它呢,你看是继承于啊ul class这个大家你要注意,咱们可不是说呢这个子父,那它呢是继承于这个eit class的,那就错了啊,这个APP class呢,跟我们刚才看到的这个那e class的一样是吧,他们都是继承于叫UR class,那关于它呢,比如我们这块,那再刷新一下是吧,那它呢继承u class,继承于class,哎,继承于class跟咱们刚才说的这个e class,它俩算是并列的两个类,从继承关系上来讲啊,是并列的两类。好,然后下边的话呢,就是关于它的这个内部的一个代码结构了,那这个类实例的一个创建,那还是得看一下这个later的一个构造器啊,当然呢,你会发现有一些这个可以说明的点啊,我们这里边呢,你看关于这个e cloud load叫扩展类加压器呢,这儿做了一个实例化,然后在下边呢,我们群相当于调用一下APP class里边叫get APP class so。
01:21
对吧,来返回一个它的这个实例,然后呢,我们传进来谁了呢?把这个叫扩展类加载器给传进去了。对吧,你看给传进去了,传进去以后呢,这是我们得到一个具体的叫z.load那相当于呢,这是我们获取到的这个呢,就看作是叫应用程序类加载器了,呃,他呢,就把我们这个e load呢,就作为他自己的一个负类加载器。一定会去做赋值的,那具体呢,如果大家有兴趣,你说这个赋值在哪赋的呢?这个你就得不停的往里边点了,你看这块在哪赋的,还得往上点,对吧。哎,然后就是这个值吧,这个值的话呢,又掉了个super,那就还得往上点,然后第二个参数它,哎,又掉了个super,那还往上点,那这个是它还得往上点。
02:06
哎,就到这儿了,这个是一个Z次的,这次在这儿啊被赋了值了,那这个是谁呢?你点开谁里边的呢?Class格里边的,那刚才那会儿我们也提到了,对吧,就是这个所谓的parent呢,我们称为它叫复力加压器,它呢只是作为一个属性出现的,而这个属性呢,我们说Java层面的这个都有所谓的复力加压器,那我们不妨呢,就把这个属性呢,就定义到呃顶级的这个抽象类当中了,啊就放在这儿了,对吧,那刚才呢,在我们讲这个代码的时候,那我是不是在这块给大家说的这个事情啊。对吧?哎,所以这个事儿的话,我们通过看这源码呢,诶大家就能看到这个场景啊好,那么APP class呢,它是集乘于classo了啊没问题,然后复类加载器呢,是扩热加载器,咱们刚才看这个launch车的一个构造器里边就看到了,它呢主要负责加载环境变量class pass或者系统属性这个路径下的相关的类库。啊,也作为咱们程序当中的一个默认的那加载器,那也是咱们使用频率最高的,那也就是说呢,咱们像自定义的这些类结构啊,咱们都是使用这个系统类加载器啊进行加载的。
03:11
啊,它是用户自定义类加载器的一个默认的负类加载器,就是咱们呢,下边还提到用户自定义对吧,那包括呢,咱们这个那会儿这个测试呢,说叫命名空间的时候啊,这里边不也演示一个,哎,我这写了一个类对吧。再打开一下这个类呢,叫做user,哎。啊,User class order这个类的话呢,我们从继承关系上来讲呢,我这儿呢,是继承了叫class load啊继承了class order,但是呢,大家注意这个类本身它的负类加载器呢,是相当于叫哎系统类加载器。啊,相当呢,叫性累加器啊,那我们看一下在这个代码的位置。在这块咱们刚才呢,是不是调用它得到的是不是就是咱们自定义的这个结构,对吧,那我这块呢,我做一个输出啊,它点get一个parent。
04:03
我们做一个执行。好,大家看这个时候的话呢,我们你看我这块调用的是谁呢?是CLASS1 class1呢,相当于是不是我们这个实例啊。没问题是吧,这个实例呢,是一个user class load,它的这个负类加载器get parent得到的是APP class,就我们上边呢,也用到了创建了这个实例了,是吧?哎,这呢就相当于我们说清楚了就是。啊,这句话。对吧,看这句话啊,然后呢,我们关于这个性类加S呢,可以使用叫GA system class啊这样一个方法呢,进行一个进行一个获取,刚才这块呢,你看我们也用到了对吧?OK,这呢是我们提到了叫做系统类那加载器的一个情况啊,那关于这个加载器呢,咱们说使用频率是最高的啊。
我来说两句