00:01
好了同学们,那咱们接下来呢,就开始上课啊,首先呢,我们先呃还是这个呃,老规矩啊,咱们先简单的做一个回顾啊,简单的回顾一下,我们把这个叫D盘下的这个cos打开啊,打开这个之后呢,咱们把这个叫做零二加YC打开,把这个document打开,然后呢,零三的课堂笔记呢,咱们打开啊呃,我在这里呢,再简单说一下,今天下午呢,咱们咱们就就给开始这个今天下午上课啊,今天下午上课,那么今天下午上课呢,这个嗯,咱们是这样。从两点钟开始上啊,上到这个三点半啊,一个半小时,当然中间的话我们可以休个五六分钟啊,然后那个我们尝试一下,今天下午呢,呃,这个加上这个一个半小时,再加一个半小时的这个课程啊,然后咱们尽可能和咱们这个面授的这个节奏呢,呃相近一些啊,然后呢,大家尝试尝试,如果说有问题的话啊,大家这个随时在微信里边给我提说,比如说老师这个我感觉有点快呀,这个内容啊,我感觉有点多啊,这个呃这块呢,这个这个能不能再放慢速度啊,你可以直接和我聊,如果你不愿意在群里面说的话,你可以通过微信跟我说啊,然后呢,我会根据这个人的数量呢,我会进行一个调整啊,呃,或者说如果说呃,咱们同学们说,哎呀,这个下午加上这个一个半小时之后,我感觉诶还是能够没问题啊,那行,那咱们再加再加一个半小时也是可以的啊,没有任何问题啊,咱们可以讲到这个下午五点啊,这甚至五点半啊,咱们都可以啊,每天去讲都是可以的啊,咱们慢慢去磨合好不好,因为呃,咱们这个面授啊,因为这个疫情。
01:36
的这个原因啊,咱们只能是临时性的这个线上的一个授课啊,这个时间我相信是短暂的啊,很快就能就能过去,好吧,行,那这个我就说到这儿啊,就说到这儿,那行了,呃,那这个到时候大家及时沟通,多讨论啊,多沟通,千万别闷头不吭啊,你什么话都不说,我觉得这个这个不行啊,要学会沟通啊,好了,那么简单回顾一下咱们昨天的这个内容吧,前这个一天两天的这个内容呢,你呢,记得在下边啊。
02:04
呃,这个自己去这个回顾啊,呃,我呢在这儿呢,可能就是说每天回顾的时候,就是尽可能就是回顾多一些啊,但是由于时间原因呢,可能就只能回顾昨天的内容了啊,那行了,那咱们简单回顾一下昨天这个内容,昨天这个内容其实还是偏理论的比较多一些啊,偏理论比较多一些。那首先呢,第一个就是关于这个Java语的一个特性啊,是咱们的啊,第二就是关于这个JVM3者之间的一个关系啊,他们分别是什么啊,然后呢,第三大点是什么呢?就是说诶在这里总结了一下我们之前所接触过的一些术语,哎,第四大点,其实这个呢,讲的时间非常的非常的长啊,然后这个呢,主要是让大家去理解一下我们这个程序啊,它的这个加载和执行,就是从编写到最后这个运行经历了哪些过程啊,经历哪些过程。然后呢,这个地方呢,咱们讲的时间也比较长,然后理论呢,哎也比较多一些啊,比较多一些,然后第五大块是什么呢?是关于这个hello word程序的编写啊,我在这里呢,就把hello word写了写啊,但是至于怎么编译呀啊,怎么运行啊这块呢,咱们并没有说啊,并没有说好了,咱们一个一个看啊,首先第一个这个关于Java原特性这一块啊,我觉得是这样啊,啊我挑重点的回顾一下,简单性的话,其实是相对于什么呀,C加加C语言老师说的啊,在C加加或C语言当中啊,C加加里面有多继承啊,包括这个C加当中有这个操作性比较这个比较,嗯,比较这个复杂的像指针啊,这个非常复杂的一些东西啊,呃,咱们在这个加法语言中已经已经给他屏蔽掉了啊,因为这个是咱们的詹姆SC这个加法支付啊,他带领的这个团队啊,基于C加加这个语言开发的加法语言啊,所以说呢,他尽可能嗯提供给我们程序员呢,是一套简单的库啊,这样的话会更好一些啊,当然他的这个虽然这个。
03:56
库简单,但是它的实它的这个呃实现啊,功能一点都不比这个呃C加加弱啊,因为呢,它这个在Java语言当中啊,它有个东西叫做Java虚拟机啊,呃,你比如说在C加当中啊,我们可能就是操作指针是由我们程序员去完成的啊,呃,要求程序员技术精湛啊,如果说这个指针直接操控内存啊,你这边呃技术不够精湛的话,有可能会导致内存泄露啊,这是C加加的一个问题。
04:22
但是这个呢,为了在这个Java中解决这个问题啊,它这个可以让为了让Java更简单啊,为了让Java更安全,所以这块呢,操作指针这个事儿啊,就交给了Java虚拟机,我希望各位能够有一点点印象啊,就是说知道我们Java程序员啊,在我们Java程序当中,他没有这个什么权利啊啊,没有这个直接操作这个内存的一个权利啊,就是这个这个权利它并没有给我们啊,并没有给我们,到后期我们讲这个内存结构的时候,大家就清楚了啊,在C加单里面是我们可以直接有驾驭感,直接操作内存的啊,但是各有利各有弊吧啊啊,那么这个第二个特性呢,就是关于这个面向对象了,这个面向对象我也没怎么讲啊,因为我们现实这个生活当中啊,大家注意啊,这个人呢,就是采用面向对象的方式去认识我们现实世界的,所以说呢,我们这个家va呢,他是采用这个面向对象啊,更容易让人去理解啊,更容易去接受,更容易去处理一些复杂化的一些问题啊呃,你比如说嗯,我们这个用程序啊,用程序可以去模拟一下一个一个人。
05:22
的一个一个一个场景啊,用呃,用程序去模拟一个人的场景。那么我们模拟这个抽烟的场景这块的话,应该怎么模拟呢?就是说在我们Java语言这边的一个出发点可能就是哦,我们需要这么几个对象,第一香烟,我们需要一个香烟对象,第二我们需要一个打火机对象,第三呢,我们需要一个会抽烟的一个人类这样的一个对象,然后第四呢,我们需要一个能够抽烟的一个场合对象啊,那这样的话就是四个对象,哪四个对象啊,第一个对象人对吧,会抽烟的人,第二个对象是什么?香烟对吧?第三个对象什么呀?就是打火机,第四个对象就是你,首先你这个地方是允许抽烟的这个场所,这个房间可以看成是一个对象,那么在我们Java语言当中,我们为了实现这个模拟这个人抽烟的这个场景,我们只要在我们程序里边创建四个对象就行了,对吧?哪四个对象啊,一个房间,一个打火机,一个香烟,还有一个人,我们只要把这个四四个对象给他,给他准备出来,在程序里边模拟出来,然后呢,我们各个对象之间共同协作起来,比如说我们房间对吧?诶是一个什么样的什么样的房间啊,然后人在这个房间里边,人呢,应该有一个动作,会会会操作这个打火机,人呢应该还有一个动。
06:29
叫什么叫做抽烟对吧?哎,我们这四个对象组合在一起就可以形成一个软件,这其实就是一种面向对象的一种思想啊,他会更容易,呃,这个处理这个这个这个这个这个我们现实生活当中更复杂的一个问题,在我们的面向对象方式去处理的时候,我们可能不需要关心这个打火机内部的一个实现原理到底是什么,对吧?我们只知道哦,有一个打火机就可以了啊,就是我们可能不需要知道这个这个香烟的一个结构,对吧?香烟的具体内部是怎样的,我们可能不需我们知道,哎,有一个对象叫香烟就行了,我们有个对象叫什么打火机对象啊,我们有个对象叫人类对象,我们有个对象叫什么对象,叫房间对象,这四个对象组合在一起,就可以形成一个软件模拟什么呀,一个人的抽烟的一个场景,其实这就是面向对象,当然这个呢,我说完之后,可能百分之呃五六十的同学可能根本就不知道我在讲什么啊,这个也正常,嗯,不要苦恼,那不要苦恼,因为你是初学者,你是小白嘛,是不是到后期呢,你学了面向对象的时候,你就知道,哦,原来是这个意思啊。
07:25
那么关于这个加密言特性,这个除了简单性,还有这个名营对象之外,还有个健壮性啊,这个健状性主要体现在自动垃圾回收机制啊,自动垃圾回收机制在C语言或C加加当中啊,这个垃圾啊是不能够自动回收的,是由程序员开辟出来之后,程序员去回收这块空间,释放这块空间,这就是我们这个C语言或C加加,那这种方式呢,可能就是人为嘛,就有可能会失误,对不对,有可能内存,有些内存可能释放不了,就会导致内存泄露啊,所以说呢,我们Java语言这块呢,有个机制叫做自动垃圾回收机制,他可能后台啊,有一个程序正在跑的,就天天看着那程序里边有没有垃圾,诶有垃圾咱们释放一下,有垃圾咱们释放一下,这就是我们的一个,诶健壮性啊Java。
08:05
做的一个健壮性啊,但是这个东西怎么说呢?大家不要说,因为学家va就说Java好好好啊,其实并不是这样的啊呃,大家呢,一定要注意这个这个东西有有利有弊啊,没有一个事物是100%完美的,只能说这个事物适合在这种场景下使用,对吧?在他他他做这方面可能诶更更更强大,是不是更强大啊,就是这样的啊,那除了状性之外呢,另外还有一点要知道Java源支持多线程啊,Java是完美的支持多线程的啊,支持多线程的,那么多线程这个东西其实就是多线程并发啊,什么叫多线程并发,就是你比如说啊给大家举个例子,那电商平台支持不支持多个用户同时访问。对吧,或者说大家打开百度的时候,你在看一个视频的时候,那你的这个同学或者是你的朋友能不能同一时间也打开这个百度,也看这个视频,可以吧,那证明这个百度的服务器啊,它可以同时支持两个用户,支持三个用户,支持多个用户同时在线去访问,这种形式就是多线程啊,这是多线程啊,然后除了这个特点之外呢,再往下呢,就是关于一个可移植性,或者是跨平台,那这个点就大家必须必须得。
09:10
必须啊,这掌握了,因为这个东西呢。这是Java的一个一大特色,就是你只要编写一次Java程序,你扔在任何一个操作系统当中,你都可以去啊运行,你放在Windows中可以运行,放在Linux环境当中你也可以运行,它是怎么做到这点的呢?那是因为它有个东西叫做Java虚拟机啊,对吧?实际上就相当于说我们需要在诶这个操作系统上安装不同版本的Java虚拟机,你比如说Windows安装Windows版本的Java虚拟,Linux安装Linux版本的Java虚拟机啊,这个Java虚拟机肯定是不一样的啊,那我们写的这个Java程序编译好之后生成的这个所谓的字解码日,这个字解码是一样的。啊,这一份最解码啊,你可以放到这个linus当中,也可以放到什么呀,我们Windows中实际上它其实并没有和Java语言,并没有和这个操作系统直接打交道啊,实际上是,呃,我们的这个。
10:02
Java程序啊,实际上是和我们的Java虚拟机打交道,而我们Java虚拟机在和我们的这个呃,操作系统打交道啊,操作系统呢,最后呢,在和我们的硬件平台进行交互的啊,是这样的。啊呃,这块呢,有一个概念,就是关于Java虚拟机这个东西呢,大家注意有利有弊啊,优点就是跨平台,缺点是麻烦,对吧,你要要想运行Java程序,你得安装什么呀,我们所谓的Java虚拟机啊,这个呢就要简单回顾到这啊,那这个整个这个就是关于我们Java源特性,当然这个特性这块除了这五个特性之外,还有一些别的特性,我们在这里呢,就简单说几个就完事,但重要的你要了解到一个垃圾回收机制啊,还有一个叫做加快虚拟机的这种机制啊。那么昨天呢,第二大点讲的是关于jdk j re和JVM啊JDK你要知道是Java的一个开发工具箱啊开发工具箱,然后呢,J re是什么呢?是Java的运行运行环境啊,然后GM是什么Java的虚拟机,你不需要关心它的英语单词怎么写,你关心那个啥没有用,对你现在只要记住这几个术语就行了啊有同学就就就有强迫症说啊老师这个JVM这个J是啥,V是啥,M是啥,你管它是啥呢?不用管啊啊完复杂问题简单化啊,你你将来你学会了对吧,你回头想看看Java虚拟机是什么,你可以看一看对不对,咱们那个啊那个讲义对吧,那个PDF文件里边也有的啊吧,Jdk Java development kit对吧?Java runtime environment对不对,这叫Java virtual machine啊表示。
11:34
哎,没讲话。呃,讲了呀。一直在讲啊。一直一直在讲啊。一直在回顾啊。就一直在回顾。刷新一下。
12:14
呃,严彪同学,严彪同学。阿彪吧,阿彪啊。在不在,在不在,能听见吗?哎,听不见啊。喂喂喂。好了,咱们继续啊,刚才这个网络出了点问题啊。呃,那接下来咱刚才说到哪,说到这个jdk j re和JVM3者之间的关系啊,他们三者之间的关系呢,是呃什么呢,就是JDK呢,实际上是Java开发工具啊,然后呢,J re是Java的运行环境,其实JDK啊,它安装之后啊,它这个内置,它会内置一个Java的运行环境。
13:07
啊,加用环境会包含一个。然后呢,这个呃,Jre呢,它其实是包含这个JM的啊,GM的这三者之间的关系是JDK包含GREGRE包含什么呀,我们的,呃,这个JVM啊,GM3者之间的关系,呃,那么这块啊,咱们。提了这三者之间关系。昨天我们安装。JDK的时候。声音有点卡,同学们,咱们今天的声音卡不卡声音?咱们今天的声音卡不卡,还是说只有这个陈赓同学这块卡呀。不会不卡是吗?好不卡,那就继续了啊,继续了是吧,继续了啊。
14:02
行行行行,好嘞好嘞,啊,那咱们,嗯,昨天在安装这个JDK的时候,我已经给大家说了,呃,JDK在哪安装了呀,我在这安装到这个C盘下的一个program file,呃,然后呢,接下来在这个地方呢,有个Java有个JDK啊,然后接下来在我们安装完这个JDK之后,当时我给大家说了啊,其实这个JDK啊,它自己在内部啊,内置的一个Java的运行环境啊,你比如它有一个叫java.exe的命令,这就可以运行Java程序内置的啊Java运Java的运行环境D内置的。但是呢,以前我和大家说一下,以前我们那个老版本的这个JDK啊,它的特点是什么呢?老版本的JDK是你把JDK装上去之后,这个JDK里边也内置一个,呃,这个这个这个jre,呃,但同时呢,呃在以前的老版本,老版本的JDK啊,它有特点是装上去之后啊,它不仅在这儿生成一个JDK,而且还要在这个位置上会生成一个什么呀,Jre啊,跟这个JDK并列的独立的一个,呃,GRE会生成,但是呢,呃,到咱们JDK13之后呢,这个就没了啊,就是独立的,就外边这个独立的这个GRE没了,但是这个JK里边有没有jre啊,有啊在哪呢?就是这这个并不录像你就可以看到,对吧,Java这个命令它就可以运行Java程序嘛,是不是?哎这边是这样的啊。
15:17
哦,手机呀,手机确实是有点卡啊,手机确实有点卡。哎呀,真是。行,那咱们就继续吧,继续吧,这也没办法啊,也没办法。也没办法啊,没事,我我尽可能到时候那个什么啊呃,课下的时候我多和你聊一聊啊,然后你这块的话,呃,有什么技术问题的话,呃,我跟你说一说啊,呃,或者说某个知识点没有听太懂的话,我到时候再给你讲讲也可以啊,没问题啊。呃,不用太担心,不用太担心,行,那咱们现在是回顾啊,好,那么再往下呢,就是关于我们这几个术语了,Javae javae Java me jdk jre和J啊加va SE是标准版,加va是企业版,加va me呢是微型版,这几个呢,我在这里再说一下,SE呢是我们的核心基础,先学这个啊,学完这个之后再学这个,或者是学这个,我们是不走这个方向啊,我们不走Java方向,我们走的是Java这个SE之后啊,我们企业开发,比如最我可以发出什么的,或者呢对吧,或呢,比如我们最起码商城对吧,这种呃,高并发的这个呃外B站点淘宝天猫对吧,包括12306啊可以这种系统开发完之后呢,最起码可以经得起上千上万的用户去并发访问,而我们系统不存在任何问题啊,我们是这样一个方向啊。
16:46
Vava。好了,那第四大点是什么,就是关于我们Java程序啊,它这个加载与执行啊,加载执行那么这块的话,呃,我觉得再把这个谁打开啊把这个。
17:09
咱们课堂上的这个讲义啊,零二加这个PDF,咱们再打开它啊,打开之后呢,咱们看一下,嗯,我们看一下啊,就是在我们的一个,呃,这个地方有个图啊,大家要知道我们这个Java程序啊,呃,它分为两大阶段啊,或者是分两两期啊,第一期是什么呢?编译期,第二期是什么?运行期,编译期其实就是检查语法,就是检查你这个程序的一个语法是否正常啊,呃,编译呢,生成了我们一个所谓的自解码文件,大家呢,一定要在这里注意一下,我再三强调啊,我们编译阶段和运行阶段可以在不同的操作系统中完成啊,我们在编译阶段可以在一个电脑上做啊,然后呢,我们运行的时候可以搬到另外一台电脑上,但是你运行的时候必须得有这样的运行环境才行,或者说你必须得有Java虚拟机才可以啊,是这样的,那么这块呢,大家注意点Java结尾的文件,咱们以后怎么称呼我们。
18:09
称呼为原文件这三个字大家要注意我们点class结尾的这个文件,我们把它叫做什么呢?叫做字解码文件,字码文件。啊,资金码文件,那要注意呢,我们的va文件呢,通过我们这个Java c这个命令啊进行编译啊编译之后呢,会生成什么呀?哎,我们的啊class文件生成一个或者是生成多个,但是在这里呢,我又给大家说了一下啊,我们生成的这个文件呀。假如说这个叫做A点啊,那么就叫做什么,就把这个A呢叫做什么叫做一个,如果我们生成的文件叫叫这个b.class那么我们就就把这个B呢叫做一个类名。那这个昨天我就跟大家跟跟大家说了啊,这个大家没必要去纠结说啊,老师这个地方为什么这个有,呃,这个叫做类名,这是我说了叫王八的屁股对不对,规定这个呢,你记住就行了,这个没必要去纠结啊,咱们学这个东西要会学,学到重点上,要知道该学什么啊,什么东西应该去理解,什么东西应该去死记硬背啊,现在呢,我去说这个啊,其实解释,其实你要让我解释也能解释,只不过我当前。
19:30
以当前所学的知识点内容来解释的话,越解释你越懵啊,到后期面向对象的时候你就知道哦,它为什么叫类名了啊,为什么把A叫类名,为什么把B叫做类名,后期你会接受的,但当下你只能去死记硬背啊,好了,那这个呢,就是关于我们这个程序。编译阶段经过Java会生成我们的class资版文件啊,那么这边呢,我们呢,呃,编译生成之后呢,其实我们就可以把这个原文件干掉了,原文件删掉,其实不影响程序的执行,这个我说过了,然后呢,接下来我们呢,在这个呃,在这个运行的时候,我们需要使用一个命令,就是Java这个命令啊,这个Java这个命令要去运行它啊,那么运行呢,其实这一块的话,我们呃会启动一个什么所谓的类加载器啊,我们如果把这个A叫做是一个类的话。
20:17
啊,那么。那么这个呢,我们叫类加载器,类加载器呢,会去我们硬盘上去找这个类,这个类所对应的这个字节码,你看我说的这句话就很关键啊,就是这个类加载器啊,会通过什么呀?会通过这个类名,会通过这个类名去硬盘上找,找什么呀,找我们呢class文件,找我们的子解码文件,找到之后呢,装载到我们的Java虚拟机,Java虚拟机呢,把这个字节码文件呢给它解释,生成这个1001的二进制给他操作系统,操作系统的执行这个啊I这个指令对吧,1001的指令,然后去操作我们底层的硬件平台,这就是我们程序的一个编写到最终运行整个一个过程,但是呢,这里讲这个理论虽然讲的很复杂,但是我们程序员只需要做这么几件事,第一写程序,第二编译程序,第三运行就行了。
21:07
啊大就是三步,三步啊,第一就是编写,写代码,这是最难的一步啊,然后编译啊用命令啊,运行也用命令,编译的时候用Java c运行的时候用Java啊,用Java是这样的一个过程啊,这样的一个过程,好了,这个关于我们Java程序的从编写到最后运行的一个过程呢,我们从理论上就说到这里啊,然后再往下呢,我们是说了什么,说了一下我们这个,呃,第一个程序。那么第一个程序这块的话,首先呢,我们第一步要安装一个I plus,这个咱们也安装了,第二个呢,JDK我们先安装一下JDK我们也安装了,在哪呀?啊在我们的这个叫做C盘下,对不对,Program file,然后呢,Java,然后JDK知道这个里边它内置了一个jre,各位啊,在这里边内置的有jre啊,有jre只不过在这个JDK外边这个位置啊呃,没有这个没有这个GRE啊,之前是有独立的GRE的啊,现在没有,现在只有一个独立的JDK。
22:04
那么这块呢,咱们这个再往下呢,就是写代码了,写代码昨天我也没讲这个代码什么意思,就总之啊,昨天啊,我让大家去严格去抄这个代码啊,我不知道大家有没有去抄这个代码啊,抄一下代码啊,严格的去照抄就行了啊,照抄就行了,然后呢,呃,咱们昨天呢,其实就是到这个位置了,再往下编译和运行是吧,咱们还没有说啊,还没有说行了,那么今天呢,我们就呃这个回顾啊,我们就到这。啊,就说到这儿啊,这个写代码这块啊,其实就是抄代码。
我来说两句