00:00
这样吧,同学们啊,这样我今天呢,我不不往上讲了,但是我给大家扩展点东西行吗。就扩展的东西,就是你愿意学学,不愿意学可以不学。咱说这题外话,跟跟咱们课程体系没关系的,这个类加载器咱们聊一聊,要不。类加载器。愿意学的就学一学,不愿意学也无所谓的啊,这个这个内容,咱们因为刚才在课程当中,我们不是有一个关于这个内在器的东西嘛,是不是。哎,咱们就聊一聊。回来了吗?回来的话打个一吧,来,扣个一来各位。行。
01:05
好了。行吧,那那那咱们来看一下啊,就是呃,说一说这个类加载器的一个一个东西啊,行吧,说一说类加载器的东西啊。提一提啊,这个代码我也不写啊,就直接关了啊,今天就就就不再往上讲讲别的东西了啊。啊,就学会扣一了好吧,怎么这么可怜呀,孩子,我感觉好可怜呀,哎呀,就会扣一了,别的不会。好吧,跟风跟风真是,哎呀,好吧。嗯,行。今天那个作业呢,就是那个交替输出啊,别忘了交替输出啊。T一程对吧,输出一,二线程输出二。对吧,哎。T3线城。
02:03
我比较好一点,我鼓虑了T3线不是T3现场错了啊,T1线程输三好吧,就是这个交替输出啊,今天作业就这么一个作业啊。然后呢,咱们来看一下吧,各位看一下啊,看一下这个关于这个类加载器啊,关于JDK,关于JDK中自带的。类加载器。什么是类加载器呢?哎,专门负责加载类的啊这个。命令或者说是工具啊,我们叫做什么呀?Class loader啊class loader那JDK中啊,自带了什么呢?自带了三个类加载器啊类加载器。一个是什么呢?是启动类加载器。啊,一个叫做什么呀,叫做扩展类加载器。
03:01
一个叫应用类加载器啊,应用类加载器,那启动类加载器。就是说。你在写程序的时候啊。就假设有这样一段代码。啊,什么代码string s等于什么呀,等于双引号ABC啊程序啊,执行到这里会怎么着,会先对这个string类进行加载啊。就代码在执行的时候再开始吧,执行之前啊,会将所需要的类,所需要的类全部加载到哪啊GVM当中。通过类加载器加载啊,看到以上代码。对吧,看到以上代码类加载器会干什么呢?会。会找谁呢?会找这个点class文件。啊,会找这个class文件。
04:01
呃,找到就加载,就这意思啊,找到就加载。那么。是怎么进行加载的呢?首先各位啊,首先会从什么启动类加载器中加载?或者要首先通过什么呢?叫做启动类加载器。加载。注意启动类加载器专门加载。这个包下的东西,计算机啊,C盘我们找一找啊,Program file Java,我们拿JDK1.8来说吧,JDK1.8下个GREGRE是Java的运行,是环境。Java的运行是环境,各位啊,点下边有个library library下有个库,库下边有个RT点价,大家看这是个RT点价,看见了吗?点右键我们用win rar打开,打开之后呢,大家看看这里是不是有很多。
05:05
嗯。你看Java这是不是浪包啊?这下面有没有砖啊?有吧,是不是顿啊,哎,这在哪个包下各位,哎,我把它拿过来啊。RT点价。注意,我拿过来放这儿啊,启动类加载器专门加载这个架包中的class文件。啊,注意启动力加器专门加载这个加包叫RT点价。啊RT点价中都是JDK最核心的类库。啊,那如果如果注意听啊,如果呀。通过什么呢?启动类加载器加载不到的时候。啊,会通过什么呢?哎,会通过扩展类加载器,明白吗?会通过扩展类加载器加载。
06:10
那么这个时候要注意的是什么呢?扩展类加载器专门加载谁呢?专门加在这个各位在这个JDK下边这个有个jre吗?GRE下边有个library库还是这这不是RT吗?刚才给大家说过了,RT点加这是最核心的啊,然后呢,往上呢,大家看这里有个ext下边是不是很多家包这个T啊,就是扩展。扩展目录啊,这很多家暴,那么这个时候呢,扩展类加载器专门加载这个目录下的。Class。星点架就是ext这个目录下边所有加包中的class文件。啊,但是你要记住记住啊。只有你的启动类加载器加载不到的时候,它才会启动这个叫做扩展类加载器,去加载这个目录下的这个资源,也就是说它实际上是在我们Java云中进行类加载的时候,它会先加载谁呀,会加载这个RT眼价。
07:08
这个里面的东西,再说这个价包里边如果找不到的话,他可能会去这个ext目录里面去找。那也就是说老师,那万一他在ext这个目录下也没找到呢,哎,记住了这个时候。如果扩展类加载器也没有加载到,注意啊,如果扩展类加载器中。没有找到。或者如果扩展类类加载器没有加载到,那么。那么会通过什么呀?叫应用类加载器啊,会通过应用类加载器啊,加载加载啊,那么需要注意的是什么呢?应用类加载器专门加载什么呢?哎,它专门加载class class。啊中的价包。
08:02
啊,或者叫class文件。就是大家还记不记得我们在很早很早以前,在这个计算机上点击右键有个属性,完事之后呢,还有一个什么呀,叫做高级系统设置,还有叫环境变量这块的话,我们是不是可以新建个环境变量叫class pass环境变量还记不记得叫类路径。在这个地方我们是不是会看配置很多目录啊,对吧,哎目录一啊对吧,哎目录二啊是不是,哎,那么这个应用类加载器就会从class pass里边加载。明白什么意思吗?啊,就是类加载器,其实在Java中有很多啊,有很多应用类加载器专门加载的是class pass中的。这个类。啊中的啊是这样的一个过程,在JDK里边有这么三类加载器,一个是启动类,一个叫扩展类,一个叫应用类加载器。啊,用在一起。
我来说两句