00:00
呃,关于呢,咱们要给大家介绍的几类类的加载器呢,其实就到此为止了,那么毕竟呢,我们说除了这个引导类加载器之外呢,其他的类的加载器都直接或间接的可以继承于class loader啊,那关于这个class loader呢,咱们简单的来呃了解一下啊,这个class loader呢,它是一个抽象类啊,它这个抽象类这个我们所有的这个类加载器呢,都是相当于继承于它的,那唯独缺了引导类,呃,这个启动类或者叫引导类加载器,那因为它呢是使用这个C或CR语言编写的啊,就凡是呢,使用这个class o这个体系下的,诶,那都是用我们Java语言编写的,或者换句话说呢,就更加验证了,就我们一开始提到的这样一个概念说呢,扎va逊尼规范里边把类的加载器呢,说分成了两类,那一类呢叫引导类呢啊,另外一类呢,就是相当于继承我们继承自这个class loader的啊,这都算是我们这个叫诶自定义类的啊,它是把这个呃扩展类和系统类都统归为是我们说的叫自定义了啊是这样行。
01:00
这个克拉呢,我们在这个API这块也可以看一下啊,像那个克拉打点开这就发现它是一个抽象类啊,这个抽象类里边呢,其实我们常见的这些方法,下边介绍的他们都不是抽象方法,诶都不是抽象方法,像我们刚才呢,提到用户自定义这个类的加载器的话呢,诶涉及到过比如这个load class是吧,Fun的class DeFine class,诶这样的几个方法,诶刚才提到过,说要么呢,咱们就是用就一开始啊呃,要么呢,就是直接用这个load class传入一个你想加载的那个呃class文件它所在的一个路径,然后呢,诶返回的是一个大的class的实例,相当于就加载成功了,诶要么的话呢,就是咱们选择这个find的class里边,咱们再去调用这个叫诶DeFine class,它们两个做一个搭配使用,诶这样的一个方式啊来实现呢,就咱们这个生成一个大的class的一个实例。行,这是关于这个大的class loader,它内部的几个方法啊,这几个方法的话呢,都不是抽样方法,哎,都不是抽样方法,然后呢,整个这个集成的关系呢,咱们前面也提到过,像这个,呃,扩展类,包括系统类或者叫应用程序类啊,他们是间接的继承于class load的。
02:14
哎,这样子啊,这个later呢,我们认为是虚拟的一个入口应用,因为呢,咱们看到这个,呃,扩展类和应用类呢,都是在later内部定义的这个内部类啊,都是这个launcher里边的两个内部类,行,然后下边呢,提到了几种不同的获取class loader啊,加类加载器的这种途径,第一个的话呢,就是通过我们这个类本身去调用get class loader,这个咱们前面也给大家演示过这个情况啊,简单的再呃说一下,我们去新建一个class loader诶的一个测试,这个我们叫测试二了哈,诶写一个main方法,那比如说呢,嗯,其实这块呢,我们还可以这样写啊,比如说咱们这样啊,我通过class。嗯,点for name,诶,我这写个Java,点浪包下的string啊,这样我们就加载了这个对应的大的class的一个实例了,然后呢,我们去get他的一个嗯,Class loader。
03:11
哎,这样的一个方式。那这个就得到了啊,那本身这个有异常,咱们把它呢,Try catch一下。打印我们这个class loader,只不过呢,这时候我们用的是这个string类型啊,属于核心API,它呢获取到其实是引导类啊,但是引导类呢,我们说获取不到了,所以打印结果呢,应该就是个no啊,就这呢,我们是用到了一个就是大的class这个实例的一个叫get class loader诶这样的一个方法诶来获取到的啊,那用户自定义类的话呢,也可以这样做,只不过呢,你拿到的就是默认情况下是这个系统类一些I了。哎,是这个意思啊,像这是一种方式,那另外一个呢,就是通过这个线程啊,当前这个线程呢,可以获取上下文的类的加载器,呃,这呢是咱们说的这个,哎,常见的这个算是第一种方式了啊,哎,第二种方式,咱们可以通过这个线程thread点哎current thread.get一个上下文的类的加载器。
04:11
这样子。那咱们当前的话呢,这个上下文就是咱们自定义的这样一个程序当中的啊,那这个自然而然的它的类的加载器也是跟刚才上,呃上面这不是的啊,上面是引导类的,呃,这个跟我们这个当前这个类啊,用的是一个就是呃应用程序类或者叫系统类加载器。那这是我们说的这个第二种方式啊,呃,还有第三种方式呢,是不,咱们也直接呢,给大家在前面演示过哈,就是我们直接通过这个呃,Class loader。呃,第二啊,去get一个system class order是吧,这也是可以获取到的,这是拿到了一个系统类加载器,然后你再去get他的parent,就拿到一个扩展类加载器啊,这样的一个情况。那比如说我们这拿一下这个扩展类加载器。
05:05
哎,这就可以了。嗯,没问题啊,这就是个扩展类加载器行,那我们这儿呢,就给大家演示一下啊,就是我们几种不同的方式来获取类的加载器啊,这个大家呢熟悉一下就行,那后边呢,还有通过这个drive manager这样的方式,诶涉及到这个相关本地方法的一个调用了啊,诶这个呢,就大家对这个class呢,有一个整体的了解就可以了。
我来说两句