00:00
好,那关于class loader呢,这个主要方法说完之后啊,咱们再简单说一下它的几个主要的子类啊,这个子类呢,是我们继承关系上的这个子类,那首先呢,我们看到它的子类呢,叫secure class load,然后再接着子类呢,叫ul class,以及呢,再对应的两个具体的我们使用过程当中的扩展类和应用程序类加载器啊首先的话,我们来看一下这个c class和ul啊说这两类呢,诶,我们首先说第一个啊,这个S呢,这里边其实没有特别多我们要强调的点,就是新增了几个呢,与这个使用相关的这个代码源啊,比如说涉及到的一些验证啊等等权限验证等等这样的一些方法,那一般呢,我们也不会跟这个类呢去打交道,那更多呢,是跟它的这个子类叫做URL,诶克拉的呢去打交道。那如果说大家呢,在自定义类加载器的时候呢,如果你没有特别多的这个复杂的逻辑呢,去实现啊,建议大家呢,你还可以呢,让自定义的类的加载器去继承于叫URL class。啊,直接呢去记录它就可以了,然后呢,你就可以避免呢,自己呢去编写这个find class啊,以及呢,获取资金码流的那个方式啊,因为find class里边啊,刚才咱们也提到了,其实你需要获取它具体的那个,呃,是不是那个resource对吧,这边是咱们这边就是咱们UR class里边,呃,咱们呢去找这个叫范的。
01:22
哎,饭的这个class。诶在它这里边儿的话呢,我们需要呢,是不是找到对应的这个路径下的封装起来以后,得到这样一个资源是吧?诶那你要是继承于它的话呢,你可以规避开去获取资源这样的一个细节操作。行,但是一般的时候呢,我们都可以考虑去呃继承那个呃,Class so了是吧,啊行,这个呢,是我们说的这个UR class so,那它这里边呢,还新增了叫UR class pass这个类呢,去协助咱们呢,去获取这个class解码流啊这样的一些功能。啊,这个呢,大家了解一下就行啊,了解一下就是我们相当于这个呃,Your class里边呢,诶把这个find class呢做了一个实现啊,或者我们叫重写,那这个呢,是大家需要清楚的一个事儿,那这个事儿清楚,然后的话,你再看它的两个词类,这呢叫扩展类加载器,这个呢是我们叫应用程序类加载器,在应用程序类加载器这里边,大家发现呢,对我们的load class,你看进行了一个重写。
02:21
哎,这块进行了个重写,来咱们看一眼这个在这个later里边。哎,找到我们的这个叫APP class loader是吧,然后它这里边儿的话呢,它你看重写了一个叫load class。那虽然说它这里边重启了,就增加了一些判断的操作,但最终的话呢,仍然调用了咱们修点load class,那修这块呢,又到我们的class里了。对吧,那通过这两个呢,我们想强调的点是什么呢?就是这个,呃,EE啊扩展类的,还有这个应用程序类的,他俩呢,本质上来讲呢,都算是调用了咱们这个class里边那个load class。它虽然重启了,但是也会调用对吧,说明他俩呢,都遵循是不是双亲委派机制啊。
03:05
哎,因为这个双性委派机制,咱们就是在哎class load class load里边这个load class这个方法当中去体现的。啊,这是我们说的这个核心的一个问题,哎,这个呢,是大家需要关注的这个主要的这个点啊好,那么关于它这几个主要的这个此类呢,咱们就介绍到这儿,那就介绍到这儿,下面呢,咱们再说一个就关于class.name和class load.load class啊这个在大厂里边呢,有的是问过这个面试题,那说这两个呢,有什么区别。其实这个事儿呢,非常简单,这个for name呢,咱们是一个静态方法,直接通过大的class呢去调,对吧,这个class.load class呢,它是一个实例方法。啊,是一个实例方法,你像刚才我们这块写的话呢,不都是获取一个具体的实例。啊,获取一个具体的系统类加载器,然后呢,去load class,所以它这是一个实例方法,非静态的,那这也没有这个static对吧?啊,这是其中之一啊这个是最基本的,然后的话呢,我们主要的这个区别在哪呢?这个for name,咱们在讲上一章加载的时候啊,加载时候呢,咱们提到过是不是主动使用和被动使用这个事儿啊。
04:14
对吧,那在这个主动使用这块呢,我们提到过class name呢是会实现啊一个initially是吧?啊,一个初始化操作的啊,而我们这个。被动使用的话呢,呃,像这个load class,它只会去加载一个类,不会呢去主动使用类。啊不动会不会去主动使用,包括我们刚才看这个load class这个方法的时候,哎,大家你看这个方法,我们刚才在调的时候,咱先调的其实是这个是吧,这个方法里边这个是个false,相当于呢,就是解析也不做,嗯主要呢,就是做了是一个加载的一个行为,对吧。好,那这块呢,主要大家想强调的点啊,给大家强调点就是这个方法呢,不会去执行类的一个初始化,直到呢,你第一次使用的时候呢,才进行一个初始化,而上面呢,就是一旦调用啊就直接呢初始化了,哎这就是它们的一个区别所在啊行,那这呢,咱们关于这个克拉斯的这个源码分析呢,大家呢,掌握到这个程度就足可以了,哎,你知道呢,我们想强调的几个重点的点在哪儿就行。
05:13
啊,就行。
我来说两句