00:00
来,那么咱们继续再往下,等这些工作我们都准备好之后,我们再往下进行了什么呀?我们讲了什么内容啊?我们讲了这个计算机语言的发展史。啊,发展史。那什么第一代对第二代啊,第三代是不是第一代?第一代是什么呀?机器语言,第二代低级语言,第三代是高级语言是不是,哎,聊了一下这些东西啊好,这个呢我就不再说了,各位啊,这个是非重点啊。然后再往下呢,就是说了一下Java语言的啊发展史啊,Java语言发展史这块呢,最主要呢,大家要了解到我们这个,呃,有个东西叫JDK对吧,JDK是Java开发什么呀?哎,工具包是不是,哎,Java开发工具包啊,Java k啊,还有了解到有一个叫Java me的东西,Java me的东西是不是,哎,或者Java me的东西,还有一个叫Java me的东西,这三者之间的一个关系啊,是SE是一个基础是吧?哎,基础学完之后呢,紧接着你可以走这个方向啊,也可以走这个方向,我们。
01:10
动力节点走的是哪个方向,是这个方向是Java企业级的应用啊,走的是Java me方向啊,咱们不走这个JAVA1方向了解一下啊,那要知道咱们Java支付呢,这个要知道啊,是詹姆SC是吧?S公司开发的啊,带头人啊是James姆斯。Ho啊,Go,对,就是这样写的啊,James。Java支付啊,带头人。哎,了解一下啊,了解一下,那么咱们说了Java语言发展史之后呢,再往下呀,其实我们说的是Java语言的,哎,特点啊,我不知道这个特点,这块大家还记得几个特点啊,什么简单性啊,多线程啊,面向对象啊是吧,可移植啊,可移植跨平台啊,是不是还有健壮性啊,对吧?哎等等等等,那么重点说这一块啊,可移植是因为有一个什么东西的存在啊,哎,因为GM的存在啊,因为GM的存在,所以呢,它可一直其实就相当于说va什么呀,哎,我们的一个va虚拟机屏蔽了操作系统之间的什么呀,哎,差异啊是这样的啊这样的,另外大家知道啊,就是说Windows。
02:26
对吧,Windows上安装的JDK和这个Linux上啊,安装的JDK的版本不同啊,啊JDK版本不同,最终啊最终JVM的版本也是不同的啊,每一个对每一个操作系统,操作系统都有自己的诶GVM啊都有自己的GM,那健壮性这一块,健壮性这一块呢,最主要是什么呢?主要是GC对吧,叫做垃圾。
03:02
回收机制回收机制。叫做垃圾回收机制啊,自动的,而且是啊自动的啊好,这个呢是关于Java语言的一个特点啊。那么Java语言特点说完之后呢,再往下其实就是哎,Java的加载与执行,其实在这里讲解了什么呀,Java从开发是不是到最终哎运行经历了。哪些过程是不是啊,那么这块呢,我不知道大家还记不记得我们这个这个这个过程啊,这块呢,我就打开这个,咱们来大概的再回顾一下啊,我们这个嗯嗯。咱们的一个执行过程啊,执行过程,那么这个过程这块的话,首先啊,咱们要知道Java元呢,它。其实分为两个重要的一个阶段是吧,哎,一个是编译阶段,还有一个是运行阶段,有两个阶段,那么这块的话,大家注意啊,Java c呢是负责编译,Java呢是负责运行,你看现在再去看这个东西,其实你就没啥了,但是第一天的时候呢,大家呢,就好像听天书一样,听不懂他在讲什么东西,但是呢,大家发现没发现,就是说你们这几天啊,一直在干一件事,什么事啊,诶Java c啊,编译啊,编译之后呢,Java去运行啊是不是,诶你就感觉这些东西呢,就很简单,所以当时你在听的时候就是感觉特别特别难,但是呢,诶诶经过一个大分的练习之后呢,你就发现其实这个啊也就那回事啊,也那回事儿,当时讲的时候,诶好像又咋地咋地生成一个什么class class文件是什么?自解码文件对吧?
04:37
哎,这块的话,呃,当时学起来比较困难啊,就像我当时讲课的时候,我说大家呀,如果当下的东西啊,不太会啊,你就干啥呀,你就接着往下学就行了,后期学着学,学着学着你前面东西就明白了啊,就明白了。啊,同样一个道理,那么这块我再说一下各位啊,首先我们程序员在这里呢,我们需要新建一个点Java结尾的这个文件,这个文件叫做原文件,原文件里边写的是原代码,原代码写完之后,你必须得符合Java的语法机制才行啊,然后经过一个编译器,Java c的一个命令啊进行编译,编译之后呢,生成class文件,而这个class文件生成的是一个或者是多个,那到底是生成几个,那要看你这个Java文件里面定义的几个class。
05:20
假如说你点Java文件里面定义了三个class,那么你生成的这个文件就是三个class文件,假如说你生成一个a.class文件,b.class文件,c.class文件,那么你的类名就是什么呀?诶,一个类名叫A类啊,一个类名叫B类,一个类名叫什么呀?C类啊,因为你三个class文件,另外要记住这个class文件啊,在这里我强调一下class文件啊,它是一个自解码文件,不是二进制文件,如果它是二进制文件,我们操作系统是可以直接执行的,它是一个自解码文件啊,字节文件编译如果通过的话,就会生成class文件,如果编译有语法错误的话,就不会生成class文件啊,就不会生成文件,那么我们生成class文件之后呢,我们可以把那个class文件啊,拷贝到我们另外的一个操作系统上啊,另外的一个操作系统上运行啊,但是前提得有一个东西叫做Java虚拟机啊,Java虚拟机。
06:12
那么这块呢,当然我们这个原文件也可以删掉啊,删掉之后呢,也不影响我们这个程序的执行,但是我当时说了这个原文件大家不要删,对不对,诶原文件删掉的话呢,它会诶怎么怎么怎么说来着,哎,原文件如果将来想改的话,你可能还要去诶改一下,改完之后怎么着啊,要重新怎么着啊编译啊编译生成新的class文件,所以这个原文件一般是不删的啊,原文件其实就是你平时写的代码,你平时写的代码那是等于是等于是这个财富啊,是吧?啊,你做软件开发,在公司里边写呀,写啥呀,写class文件呀,不是啊,你是写Java原文件,你写的东西肯定不会删,但是如果删掉也不影响我们程序的执行,要了解到这件事情啊。Java c是编译的,但是要注意这个命令怎么用,各位来,我来说,你来想Java c后面跟的是什么?哎,Java c后面跟的是Java原文件的路径啊啊,路径分为什么呀?相对路径和什么绝对路径,那么再看这个Java这个命令,各位Java这个命令在这一块呢?咱们是,呃,怎么用啊,Java这个命令后面跟一个类名是不是?哎,如果这个叫a.class的话,那就是Java空格A,如果是B的class话,就是Java空格B是不是?哎,当你敲完回车之后,接下来是怎么着啊?哎,会启动Java虚拟机,启动Java虚拟机之后启动一个类装载器,大家还记不记得类加载器啊,类加载器会去硬盘的。
07:29
当前位置上找什么,你比如说加va a。你写一个Java a求回车,那么这个类加载器,类加载器它干啥呀?去硬盘上找谁去了?找这个a.class文件文件去了啊好,各位跟我交互一下,默认情况下去找这个a.class文件是去哪找?是从哪找?默认情况下是从哪找?各位给个回应来默认去找这个a class文件是去哪找?各位。
08:00
当前路径是吧,哎,雨阳说的很有道理啊,很有道理,那么大家想一想,嗯,如果如果我想让他去别的路径去找的话,应该怎么做?还记得吗?类加载器去硬盘上去找这个去了。我不想让他从当前路径下去找,我想让他去指定的路径下去找。还记不记得那个环境变量的名字?那个环境变量的名字叫什么?设置class。哎,Class pass啊pass。哎,你class pass这个配好一个路径,假如说是D盘的话,那将来他这个Java空格A敲完回车之后,是不是就是去硬盘上去找这个a.class去了,如果你没有设置这个东西的话。哎,它是默认去哪找啊,去当前路径下找对不对,如果你设置是D盘的话,大家还记不记得它是找这个a.class的,去哪找啊,去D盘的根部路下去找,它不再从当前路径下去找了,所以当时我们这个class pass这个环境变量是不是就没配啊,哎,就没配啊,就没配,那么继续说我们这个执行过程啊,当我们把这个类加载器找到我们的class文件之后,装载到我们的Java虚拟机当中,Java虚拟机把这个class文件自解码解释成1001的二进制给操作系统,操作系统干什么呀,通过执行1001的二进制来操作我们底层的硬件平台,这就是我们的编译阶段和运行阶段啊,编译阶段和运行阶段。
09:31
好,这个要求是什么?要求自己,要求自己能够啊,从头。描述到最后。啊,在不参考啊,不参考任何资料的前提下啊,你可以自己能把这个描述出来,就是Java他从编写到最后的对吧,从编写到最终的运行啊,把过程描述出来,描述出来啊就是第一步干啥是不是,哎,第二步干啥是不是。
10:08
好,这个呢是关于Java的加载与执行。
我来说两句