00:00
那接下来的话呢,我们讲的就是这个扎va巴的这个新特性啊,嗯,扎va巴的新特性我们就讲完了,然后扎八九的话呢,是我们今天要讲的啊,应该这么讲哈,现在在这个公司当中呢,主要用的版本就是各个版本都算上,咱们做一个统计的话呢,呃,虽然我们有明确看到一个特别权威的网站说这个数据到底是几比几,几比几,但是大体上的话呢,也查了一些相关的一些资料,看了看,基本上现在在公司当中应该说用张二八的比例是要稍微高一些的,或者说呢,应该是这些版本当中是最高的一个啊,因为扎va巴呢,应该是2014年出来的啊,到现在呢,应该也有好多年的这个时间了,诶,基本上也都能够应用起来,而扎VA8呢,我们也看作是继扎VA5之后啊,一个具有里程碑式的一个这个这个版本,哎,扎VA5的话呢,大家应该也会发现我们有很多的新特性呢,都是在五里边加的啊,比如说这个注解的信息是吧,泛型的体现自动装箱,自动拆箱啊等等好多包括这。
01:01
这咱们后边提到这个像spring builder等等啊,都是在我们这个JAVA5当中加的,而且在五的时候呢,Java还改了名了啊,以前呢就叫JDK1.5啊,在这时候呢,改成叫5.0了,哎,但其实的话呢,说的是一个事儿啊,咱们叫Java1.8啊,或叫JAVA8JDK8其实也是一个事啊,那么扎VA8呢,应该是五之后的一个具有里程碑式的一个,呃,这个版本了,主要呢,其实体现在就是拉曼达表了,是死追API,还有呢,比较重要的呃,日期时间,API的一些提供啊,这是它的主要的一个特点啊,也体现了它为什么叫里程碑式这样一个概念,那说这个意义什么呢?就是大家在公司当中,既然JAVA8这个版本的话呢,已经是算成主流了,那杨IG呢,就八里边的这些新特性,大家实际上是可以考虑去应用的。啊,那么今天呢,我们讲九十十一也会有很多的这个新特性啊,那公司里边这些版本呢,用的还比较少,或者说这些版本的话呢,比较特别了啊,这个更新速度极快,那就意味着它里边有好多呢,这个特性还没有施展开啊,另外的话呢,就是好多呢,可能也没想好,反正就推出了,推出以后呢,后边不好它再删就成这了,诶所以这里边呢,我们也是把控其中的,呃,比较重要的一些特性就OK了啊,毕竟这个离咱们还比较近,很多呢,还没有应用起来,所以八里边的这个大家要关注一下啊,那针对于这个八里边这个新特性都有哪些呢?诶我们首先呢是。
02:26
诶,放了一个这个叫思维导图啊。直接呢,我们来看一下这个PPT。嗯,整体来讲的话呢,当然这个整体Java吧,这个新特性不止这些啊,咱们主要的话呢,就是来看一下咱们针对于代码落地这个层面呢,需要关注的一些新特性,当然了也是主要的一些新特性啊,这是一个图,这是一个图。哎,这呢就可以了啊,哎,我们呢,在这一章主要讲的就是函数接口那位表示啊,方法引用,构导引用,哎之于PI optional这个其他的一些呢,咱们在之前呢,零零散散呢,也都讲到过了。
03:05
哎,包括这个类型推断呢,咱们这个讲这个拉姆达表达式呢,其实也提到过啊,后边呢,有一些JDK或叫API层面的一些更新,呃,这个大家呢,你看一下我们这个呃文档,哎这个你看的话呢,就八的这个文档啊,也能够看到哎就OK了啊行,哎,包括这个内存层面的有个结构的变化,原空间取代永久带啊这呢都是八里边的一个新特性。好,这个呢,我们就简单的看一下,主要呢,我们这一章讲的就是下边的这几个事儿。行,那一个一个来过一下,首先关于拉姆达表达式,嗯,应该这么说啊,这个JAVA8当中呢,只要提JAVA8,包括后边版本也是一样,你这个版本出来以后呢,你的最核心的你的变化是什么,一般大家都会提一下,那像JAVA8里边最核心的就是拉姆达表达式和死轮鱼片。就是一加一是吧,这个拉姆达表达式加上40PI,这是最重要的变化,那这个拉姆达表达式呢,实际上它是语法上的一个变化,多了一些新的语法,你没有见过的,像这个箭头操作符,像这个方法引用里边这个双冒号,这个是没有见过的,以前也没有过,所以这是语法上的变化。
04:14
啊,那么还有呢,就是后边是API层面的变化,语法还是咱们以前说的对象调方法,调属性这样的模式啊,或者你去扭一个构造器等等,那这个API层面变化就是我们多了一些新的类,或者是接口,或者一些新的方法来让你能够做更多的事了,这就是API层面的变化,那后续的版本呢,对于我们来讲,或者以后还会发新的版本,大家也主要就关注这个事。哎,看语法上有没有新的变化啊,另外呢,就是有有没有什么新的API,呃,是独立出来新加的,还是说对原来的一些替换,哎主要你关注这个事啊就可以啊行,那我们首先关注它这个语法上的一个变化,提到了拉姆达表达式,那一上来呢,咱们就先做了两个简单的一个举例,先让大家感受了一下这个什么叫拉姆达表达式写的这个例子啊。
05:04
诶,上面这块呢,写的是一个randomable,哎,这是一个CTRLC。哎,这个例子啊,你你注意一下我这个例子,我这写的不是多线程啊,但是直接拿这个接口的实现类直接掉段了,这我不是一个多线程问题,你要多线程就用个thread把这个R1扔进去是吧,调大的方法,哎,那是多线程啊,这呢,咱们就只是体会了一下,说我们在提供这个reable的实例的时候,哎这块呢,咱们应用了一个叫诶拉姆达表达式啊。嗯,这是一,然后举例二。举例二呢,这我们又提了另外一个关于对象比较大小的时候,有一个叫定时排序啊,需要我们去创建一个compare的一个时间类对象,这个呢,我们仍然体现为叫拉姆达表达式,包括呢,还可以用更进一步的叫方法引用去来描述CTRLC。
06:02
嗯,占到我们这个位置成这就可以了啊,这呢就是先是简单的让大家去体会了一下,那么具体的话呢,我们关注说怎么去写这个拉姆达表达式啊,哎,下边我们就在这个哎这个类当中文件当中去说了,呃,以这样的一个格式为例,咱们说呀,这里边包含三部分,哎中间呢叫拉姆达操作符,或者呢,从形式上来看就叫箭头操作符,对左边呢,就拉姆达形态列表或者叫参数列表啊都可以啊右边呢,就是我们的拉姆达题。这样的一个结构。行,这是我们这个形式上,呃,有这样的一个称谓啊,你得会去教。那就是大家呢,就是嗯,做开发的有很多这个专业名词,你得该记住的就得记住了,你不能说嗯那个东西,这个东西这太不专业了,就你看有业余的是吧?啊你得这个有一些专有名词,你得会说,这样一说的话呢,感觉这就是就干这一行的是吧?啊就是每个专业其实都有一些专业的一些术语,你像大家呢,你要是去听那个专门的,比如说讲金融方面的一些报告,其实很多时候你是听不懂人家在说什么的,就像大家原来你可能没有做过软件开发,你看程序员他们要讨论一些问题,其实你也基本上听不懂他们在说什么,哎,再或者就是大家一开始学编程的时候说,你尽量不要先上来就整那个Java编程思想这本书是吧,那一个呢,你看不进去,不知道他在说什么,另外呢,里边他大量的这个专有名词,你也不知道他描述的东西到底是什么,哎,就这个点啊,那以后呢,怎么体现的专业一点呢,就是专业词汇这方面的,你也得去积累。
07:38
啊,也得去积累,哎,大家呢,呃,慢慢你以后其实会有一种感觉哈,别忘了前面有没有说过这样一种感觉了,就是包括我,你看我天天这样讲课是吧,天天这样讲课呢。你说算是这个口才算好呢,还是算不好呢,还挺符,哎,配合的是就是天天这样讲,按说感觉好像说口才应该还行是吧,每天呢说这么多词汇,但是呢,你实际上发现呢,当你换到另外一个圈里的时候,比如说大家都在谈这个,怎么去管小孩啊,你发现的一句话也说不出来,呃,就是经验少是吧,或者你在那方面积累的词汇量呢,就非常少啊,你说别人呢去谈这个,比如说咱随便举个例子啊,比如谈这个金融啊,谈这个当前的经济形势,你进去以后,你发现一个字也不会说,因为你根本没有那块的一些积累,所以你这个语言呢,就很难表达出来,词儿也说的也不专业是吧?啊就显得呢,是这个这个这个表达能力不行啊,但是你要放在你这个专业里边呢,好像又又非常能说就这种啊,所以大家呢,就是呃,对大家的要求,不是说每个人都要求变得多么外向,多么什么样人的性格不一样,但是呢,你应该慢慢变成一个在你这个专业领域里边啊,别人在问到你问。
08:51
积的时候,或者需要沟通的时候呢,你能够尽可能的表现出来的,有点那个滔滔不绝的感觉啊,这就说明你确实积累的东西是够的啊,尤其是你以后你想这个比如说先做技术,后来呢,这个在管理层面想往上升一升的话啊,那这个时候呢,你就要具备这方面的能力。
09:09
啊,什么叫所谓的什么管理能力啊,什么团队协作能力啊,说的可能说有点区域一样啊,但落地的话呢,最起码你要作为一个稍微的管理者来讲,一方面解决问题的能力要强啊,不光你自己能够实现代码了,然后呢,你还能够帮助别人去解决这个问题是吧?另外呢,就是这个表达能力啊,你也得能够适当去锻炼锻炼,完全得你这个表达不行,你说我就想做管理,这个呢,可能上一层的领导得考虑考虑说要不要给你转成管理岗是吧,就是这种情况了啊,对啊,就是呢,不管你做管理也好,不做管理也好啊,你做技术也是一样,就是在谈到这个技术这个层面呢,你得相对来讲是要能说的啊,能表达的啊,应该是这样的啊,那不要呢,简单的定义成,反正我能写,说不说无所谓,那还是比较初级的一种状态是吧,好,这个是我们说的这个基本的一个格式啊,然后接下来呢,我们分成了六种情况去做一个介绍,这呢我们来看一下PPT。
10:08
嗯,写到这儿了啊,这个咱们就把这个截图呢截一下。这六种情况其实不是完全的是并列关系,里边呢,其实体现了这种递进关系。那这个呢,是三种情况,然后再往下走,哎,这是这个情况里边呢,是存在递进关系的啊,这个像我们讲了二讲三讲四的时候,其实是里边呢在层层递进,比如说呢,在这个二的时候呢,我们加上了这个类型,三的时候呢,说有一个类型推断可以把类型省掉,四的时候就说你要有一个参数的话呢,这个小括号也可以省略,注意只能是一个参数啊,没有参数或者两个以上啊,你还得要加上小括号,哎,在后边呢,说你后边这个这个直引语句啊,如果要是多条的话呢,你就加上这个一对大括号,如果呢,就只有一条了,大括号也可以省。
11:00
Return这个关键字也要上。哎,也必须要省掉,你要不省的话,大括号就都补上,加上return,你要把大括号也省了一条执行语句,Return呢也不要写,哎这呢是一个递进关系啊行,这呢就讲了这六种情况,那大家呢,不用去司机这六种情况,你就根据这六种情况呢,总结我们下边这个事儿就可以了,就是我们写出来的这样的两句话,And c。哎,这个我们拿拿过来就可以了啊说呢针对于左边来讲。哎,针对于左边来讲的话呢,我们叫形态列表了,形态列表的话呢,就是类型首先呢都可以省了,接着的话呢,就考虑如果只有一个参数小括号呢,也省了。哎,就记住这个点就行,那么对于右边来讲,右边的话呢,就是大括号呢,给它括起来的,这就你的这个实际上是我们这个抽象方法的方法体了,实现这个抽象方法的那个方法体啊,那么如果呢,你要只有一行执行语句,这个你就把return跟这个大括号呢都省了,其实就这么个事。
12:02
就总结出来这两点你记住就行,其他这六个的话呢,作为过程存在,听完以后呢,就就过了啊,就OK啊行这呢是咱们关于这个拉姆达表达式的一个使用说明。啊,然后讲到这儿呢,其实还不算是探到底,探到底的话呢,你就得想说,我们到底什么时候要用拉姆达表达式,什么时候能用拉姆达表达式,这呢,我们就必必须要说一个概念,叫做函数式接口。
我来说两句