00:00
好,然后呢,咱们复习一下,打开这个一瑞,打开这个文档,我们看这个高级部分,嗯,看这个高级部分之前呢,咱们先来看下,说这个idea,毕竟呢,咱们前一天呢,讲的时候呢,是先说的这个idea的一个使用,实际上这idea呢就是一个集成开发环境而已,以前呢用的eclips,现在换成idea了啊这个之前呢,讲公开课的时候呢,有的这个同学在这个网上就开始留言在这说啊说老师呢,能不能出一个idea版的Java基础,说那个之前呢都是ecl版的,现在我想看一个idea版的,嗯,这句话出来以后呢,首先来确定这肯定是一个这个这个小白了是吧,嗯,像温州这样的话呢,肯定是这个不是特别熟悉了,其实完全没有必要是吧,就是eclips呢跟idea它不就是一个开发环境嘛,主要呢,讲的内容呢,还是Java基础里边这样一些内容,只是呢,你换了一个东西去演示,就像原来呢,你可能这个咱们打开一个所谓的这个叫点doc这个结尾的文件,原来呢。
01:00
你打开的时候呢,是用的这个office里边那个word打开的,后来呢,你换成这个WPS了,诶这个怎么去写word,就相当于是讲那个Java语言那个层面的,那你原来是用这个office打开,现在换成WPS了,没有必要非得说,呃,打开的时候呢,你用这个讲的,然后现在用WPS再讲一遍是吧,也没有多大意义了,就啊那其实就是个工具,诶就是即使呢,咱们比如说没有讲这个idea,大家到公司当中这个发现呢,这个项目用的是了,原来你咱们在这学的时候呢,用的是eclips,你到公司呢熟悉一下就行了,可能刚开始这个一两周有点不适应,适应以后呢一样,甚至说呢,咱们只是说这个一个idea呢,他俩加起来其实也没有达到Java这个开发整个实际场景当中100%的这个占有率,那还有一些呢,是比如说net beans啊等等,还有其他的一些比较小众的这个开发环境,那万一呢,你要赶上那个项目,就用的那个小众的,那怎么办呢?你还能说我就不干了。
02:00
值了是吧,也不合适啊,就熟悉一下用呗,是吧,所以没什么啊,这只是一个开发环境而已,他其实比大家呢,你去学一个陌生的框架呢,其实从某种程度上来讲,其实也要简单啊,也要简单好这呢就是说一个新的一个呃开发环境,只不过呢,大家刚开始用的话呢,呃,稍微有一点不适应啊,慢慢的去适应适应就可以了,那基本上呢,一旦你适应以后呢,你可能就不想再回到ecl那个时候了啊,那关于这个idea的一个配置呢,这块我简单的写了这样几块哈,实际上就咱们讲课时候涉及到的第一个关于idea的一个介绍啊,一个简单的介绍,然后呢,下边呢,就关于idea的一个下载和安装,这个时候呢,稍微注意一下,就idea呢有两个版本啊,社区版和这个旗舰版,这个社区版免费的,你开发这个Java,普通的Java工程啊,或者这个安卓程序啊,或者大家回头学这个大数据,大数据的同学学这个skyla的时候,这个你也可以呢,直接用。
03:00
就社区版就行了,但是如果呢,你想进行企业级开发,这个时候呢,需要用旗舰版,那旗舰版的收费的,当然也可以免费用30天,那你就想办法去买或啥的是吧,那就可以了啊对,然后这个安装的话呢,其实也是一个傻瓜式安装,基本上就都是下一步,下一步就可以了。嗯,行,那安装完以后的话呢,我们就会在这个正常的话呢,我们都会勾选的一个勾,桌面上会生成一个32位或者64位的这样的一个启动的一个图标,然后呢,这个图标出来以后呢,你就双击一下去启动就行了,所以启动这块呢,涉及到一个又又涉及到几个简单的一几个界面了啊下一步啊,或者你能够看到呈现哪些情况,比如说一开始让你还选一个主题啥的是吧,包括呢,你要是一个收费版的,你还得需要填一下这个序列号啊等等这的都在这个启动的时候呢去显示的,然后的话呢,启动完以后,大家呢,去写个hello word让它跑起来,这个属于基本的这个idea的一个使用了,然后呢,为了更好的去使用咱们这个开发环境,咱们呢做了相关的一些配置,嗯,我在这个word当中呢,写的其实也只是这个,其中呢,我们说诶比较长的一些配置了,那我们在这个idea里边,你会看到它有很多的这个配置啊,这很多了,那么还有很多的我们就没有去讲了,这个一个呢就没有必要了。另外呢,你。
04:20
你要想多去研究研究,大家呢,你去网上搜相关的一些帖子也都能出现啊,这里边呢,我是挑了比较高频的一些这个设置呢,就来给大家讲一讲,后边的话呢,涉及到这个快捷键的使用,这个呢需要你去熟悉,一定程度上呢,我们对这个开发环境呢,熟悉与否,也得看你对快捷键的应用熟悉与否,你要连快捷键都不会用,这个很难说,你对这个开发环境呢了解的很熟悉了,嗯,这个因为快捷键的话呢,你要不用的话呢,开发效率其实也提升不上来,说明你对这个开发行境呢也不太熟悉啊。嗯,快捷件的话呢,咱们让大家呢去导了一个,就是我我自己写的那个jar文件啊,那个导进来以后呢,95%以上的这快件跟咱们这个在ecl当中都一样了,哎,其中有那么一两个呢,我就保留了一下idea当中自己的这个快捷键没有去改,因为这个,呃,确实还有一些呢,就就不要改了,比如说咱们在idea当中比较常用的是这个alt加enter啊。
05:20
对,这个呢我就没有改了,这个呢比较常用,有点像咱们这个eclipse当中这个CTRL加一这样一个操作了,行,这个呢稍微注意一下,其他呢绝大部分都一样,嗯,然后呢,这个模板的使用,咱们eclip当中也有模板,只是说呢,Idea这个模板呢更强大了,大家呢可以去自定义模板啊,使用起来比较方便,这个呢,大家就先熟悉熟悉它给定的这些模板。这个怎么用就行啊,嗯,具体的话呢,大家参照一下这个咱们发的这个文档就行了,好这块呢就不多说了,然后呢,咱们主要讲的这个知识呢,是多线程,多线程里边咱们就讲到这个这个创建方式和常用方法了,行,那我们就稍微往下顺一下,哎,刚才呢,考试也考了说程序进程线程的理解,这个呢就不多说了。
06:15
哎,CTRLC一下。嗯,这个我加上一个句号,就说呢,这两句话呢,大家你说哪个都行,说这个呢最好,这个呢,你要是感觉理解起来这个有点吃力,或者说呢,有时候一懵就不知道该怎么说了,最起码你也能把后边这句话呢说出来,这是关于这个程序的一个概念,下一个关于进程的概念啊,你就理解为是正在运行的一个程序啊,是程序的一次执行过程,或者呢理解为正在运行中的程序。嗯,通过这个呢,你能看到这个进程的话呢,它是有所谓的叫生命周期的,这个生命周期呢,呃,应该说咱们是首次提到这个概念,以前呢,好像没有怎么提到过这个词啊,其实你要说媒提也也也提到过,就是关于一个比如对象的一个创建是吧,当你对象这个消亡,一个变量的一个声明,当你变量的一个回收,这其实也算叫生命周期了,只不过呢,这只是一个简单的变量,我们就没有特意的说啊,这个生命周期怎么着了,然后从这开始。
07:22
咱们讲多线程开始啊,正式的提出了一个概念,叫做生命周期。这个在某一个结构生命周期之内,通常呢,会涉及到它的相关的一些方法,或者是相关的一些状态,诶后续呢,大家讲web的时候呢,比如说你也会这个学习到这个叫soull是吧,Sol的话呢,我们也会谈它的一个生命周期。啊,什么时候他出生的,什么时候消亡的,中间呢,又有哪些过程,涉及到哪些方法的执行,诶都会的啊,哎,那要学这个移动端的同学,比如学安卓的,哎,这个呢也会讲安卓整个这个界面对应的一个类叫做activity,哎,就是大家开个页面就有个activity了,然后呢,比如说你这有个按钮,我一点这个按钮,它就跑到另外一个页面了,那另外一个页面呢,其实就是另外一个activity,它也会有它自己的一个出生显示啊消亡这样一个过程,当然它这个过程呢,就更复杂一些啊,比如说你像前边这这有个页面,你点按钮突然出来一个dialogue是吧,那后边这个,呃,就是你不能操作它了,它就变成一个灰色一样,这其实就相当于它的一个另外的一个状态。
08:30
啊,那这些状态当中会有哪些方法去执行,这就涉及到生命周期中的一些方法,这个色类呢,后边咱们也会去讲它的生命周期中的一些方法,咱们现在讲多线程,也会提到多线程它有多个状态,这个咱们复习完以后呢,就讲这个事儿,它有多个状态,那多个状态里边哪些方法会导致这种状态之间进行切换,这也是咱们要关注的一个问题,好,这是这个事儿,那么这这里就关于你的这个进程的一个理解啊,举个例子就可以了,这个很好举,然后接下来呢,大家去注意一下,就是我们这个进程啊,这提到它是一个,诶内存分配的一种单位啊,或者资源分配的一种单位。
09:12
咱们呢,也带着大家稍微呢,看了一下咱们这个GM的这样一个内存结构啊。把这个图呢,咱们整过来吧,CTRLCL一下。这个就放到这个下边了啊,这是咱们这个相当于是内存的一个结构啊,内存结构,这个内存结构里边呢,我们需要大家稍微现在能够留意一下,就是这个进程啊,嗯,或者这样说吧,这个进程。啊,进城。可以叫细化为哎多个线程,这个时候呢,我们这个进程就是支持多线程的啊,进程呢,可以细化为多个线程,我们说呢,每个线程。
10:01
哎,这个拥有自己独立的哪两个结构啊,对,一个叫做站,一个呢叫做程序计数器,哎简称呢,这个叫PC了,程序计数器成这是每个线程啊用用自己独立的这个结构了,这个我说的站呢,就是说的这个虚拟基站,嗯,然后呢,这个多个线程啊,共享同一个进程中的结构。哎,或者叫数据啊,那同一个进程里边,我们说一个进程只会大家定义一个方法区和对,就相当于多个一个进程当中的多个线程,他们共享这个进程当中的方法区和堆这样的一些数据啊,那么你多个线程我操作会,你操作会,哎操作的都是堆里边的同一个数据,这呢我们就称作叫线程的通信,这就叫通信啊,那么这时候通信过程当中呢,你要小心一点,就说诶,我这个线程呢,来操作这个堆里边的数据了,我还没操作完呢,另外的线程就抢着进来了,这就是咱们后边要提到的一个安全问题,就可能会有这个安全的隐患啊,哎,咱们呢,就是今天讲那个重点就是同步机制,就来解决这个安全问题的啊,就是它啊好,这个呢,大家也清楚啊,那么接着回过来。
11:36
哎,那这就这不提到他这个事了啊,这个线程线程我们就说这个是一个程序内部的一条执行路径啊,把这个也加过来吧。那这个它了,然后具体这个说明,哎,线程呢,作为调度和执行的一个最小单位了,执行最小单位就是线程了,不能再往下分了,有点像咱们前面讲的这个数据最小,最小就到这个字节了啊,不能再往下再分了,好这是咱们说的这样的一个概念,然后那个进程跟线程呢,我们说线程是进程进一步的细分,所以这呢,我还放了一个这样的一个图,哎,这个呢,形象点去理解一下。
12:25
那程区进程与线程这个就放到这。哎,下边呢,这是一个补充,保存好这个就搞定了,然后接下来叫并行与并发,那这两个词的话呢,后边我们也还会去提,哎,大家呢,你能知道这两个的区别,那讲这个之前呢,提到一个啊,多核单核CPU的这样的一个问题,嗯,这个其实不用多说了,大家一看呢,其实也都能明白啊,然后另外呢,关于这个账号程序咱们知道呢,它最起码会开三个线程。
13:01
那现在的服务器都是多核的啊,这个括号又没有了,这个呢也。再去收费应该是扩到这儿了,成这个单核多核啊,这个大家呢,就了解一下,这个应该很清楚啊,就是即使是一个核呢,我们也可以说它是支持多,比如说多进程的,或者你进程里边又分成多个线程也是可以的,就相当于它快速切换。啊去执行,让你看似呢,它像是一个并发执行的,呃,这个这个并行执行的是吧,看着像是一个并行执行的,实际上呢,它是一种假的,这种多先生啊,它快速切换,让你看似它每一个呢都在同步的执行,同时执行啊其实没有是吧,其实它是切换着执行的,那要是多核CPU的话呢,那你肯定是这个同时去执行了,那就这样的意思啊嗯,那么这个大家去买电脑的时候,有时候不也会涉及到什么叫双核四线程。还有四核四线程是吧?哎,像这个比如说叫双核四线程,它其实相当于这一个核呢,它就又通过它的这种技术哈,它叫这个超多线程的一种方式,跟你模拟出来这个一个,呃,这个一个核呢,能出来两个线程是模拟的一种效果啊,它跟这个你看有叫双核啊,就写两核吧,双核这个四线程跟这个四核四线程比哪个性能好啊对,那肯定是四核四线程啊,这个人家这实打实的就是四个核是吧,你这是两个核呢,给它每个核呢,给它这个模拟出来,相当于是两个线程来的,就是相当于达到两个核的一个效果,那其实呢,性能上是有差距的,大概这个差距的话呢,呃,在它的基础上呢,能够再提升60%吧,啊,就能达到这个,就是你这个这个性能的再提升60%,是这种四核四线成这样的效果啊成。
14:54
嗯,然后呢,一个Java程序呢,我们说至少有三个线程,主线程,垃圾回收,异常处理行,这个呢,大家呢,了解一下并行与并发,嗯,就是多个CPU,就是一说到并行你就想这个,嗯,公路上的这个车一样,好几条这个通行的这个道是吧,大家可以同时的去执行啊,这多个CPU呢,同时执行任务,或者呢,你还可以去想,呃,你去打篮球啊,一进这个体育馆,你发现有好多的这个场,每一场都在玩啊,这就理理解为叫并行的啊,每一个场都在玩啊,然后这个并发呢,你就可以关注到某一场这个篮球里边一个球扔上去,所有人都去抢,多个人做同一个事儿,哎,这个呢叫并发,哎这样啊。
我来说两句