00:00
行,这个咱们后边的话呢,还差两章,诶第16章呢,叫扎阿巴的新特性,这个扎巴呢,我这写的叫其他新特性,哎,因为有一些呢,咱们在前面都已经讲过了,呃,回忆一下咱们讲过哪些啊这个呃,当然这个之前呢,是我们这个前面第一部分了,在整个这个第一部分呢,是我们这个语言层面呢,主体呢就是面向对象了,在面向对象里边呢,我们提供一个接口,对Java吧,里边提到一个默认方法,还有一个静态方法,对啊,其实呢,有了这样一个特点以后呢,你会发现这个接口啊,越来越像个类了,它这个方法还可以提供方法体是吧?哎,那你这块呢,还可以通过接口直接调,哎,这块默认方法的话呢,还是一个非静态的,它就非常灵活了,就啊成,然后呢,我们回到这个这个高级部分,高级部分的话呢,看看有哪些位置有这个变化啊,比如常用类里边,诶,我们提到这个日期相关的API,诶JAVA8里边呢,提供了新的这个日期时间相关的API了,而且这个呢,我们说到这个G前两次以后,这一次的改变呢,是非常重要。
01:00
好的,呃,以前的话呢,有很多都被这个过时了是吧,Depar了啊,然后这个Java吧,里边新增加的这个,呃,Local daytime啊,呃,这个instant啊,还有具体的这个data time formter啊等等,哎这一类的话呢,以后会慢慢你会发现应用的会比较多一些,呃,一方面呢,我们自己写,另外一方面呢,你看到第三方的一些炸包或者是一些框架,诶他们底层呢,也开始用这个JAVA8里边这个日期时间API了,诶大家慢慢的也把它这个应用起来,在后边呢,提到这个注解,那注解的话呢,JAVA8里边我们讲过这个类型注解,重复注解是吧?哎这样的一问题,那集合里边有呗,有对切哥呢,就涉及到扎二八那个底层有一些变化了,哎,咱们泛泛的讲呢,就是说呃,一方面哈,有一些呢是在编译,呃,在这个业务对象的时候呢,底层就把数组造好了啊,Java吧里边呢,就一开始先不造啊,有点像一个从鄂汉市到懒汉市这样一个特点一样啊,延迟了这个数组的一个创建啊,这个点另外的。
02:00
它呢,像这个哈希map,哈希map呢,在呃八之前跟八的时候呢,体现了一个底层有一个红黑数了,对这个红黑数的出现呢,是不是就可以让我们这个效率更高呀,哎,对的啊,你像我们这个后边呢,讲这个数据库,数据库呢,它底层这个索引呢,都会用到这个树树引结构啊,比如B树B加树,那它比你用这种线性结构呢,效率要高很多啊这呢就提到诶我们JAVA8里边呢,对集合的修改,使得呢,我们这个执行效率呢就能更高一些。成,那后边的话呢,基本上这个变化呢,就就有限了啊哎,所以呢,我们这一章呢,提到叫张二八的一些其他新特性,那除了刚才提到的一些,我们融到这个相关的这个章节讲之外,看看还有哪些新的特性,这是我们这一章呢要说的点,然后下一章呢,就提到JAVA9011啊Java呢,后续你发现迭代版本非踌啊,那当然这里边这个新特性呢,相对来讲也就少一些,当然我们也要看一看到底都有哪些新的一些变化啊,这个我们单独的拿了第17章啊,把这三个这个版本呢,统一的这个特性呢,就一起讲一讲了啊好,那这章的话呢,咱们主要讲的就是这个扎VA8里边这个特性,诶打开我们来看一下,那这一章呢,我们主要讲几个事儿,主要呢,就讲这样几个事儿。
03:13
哎,拉姆达表达式函数是接口方法引用与构造器,引用强大的stream API,其实呢,就是string API,只是呢,前面加了一个感性的一个词叫强大的是吧?哎,我们看看它怎么就强大了啊,在后边呢,一个叫optional,一个类啊,就是这样一个类,这呢就是我们这个这一章要讲的一些新特性啊,那主体来讲,关于这个张二八里边呢,都有哪些新特性呢?这呢我做了一个思维导图,思维导图呢,我就把它导成一个图片了啊,大家看那个图片呢,可能更方便一些。那从上往下看,那刚才呢,我们也提到了,咱们在这一当中要讲的是函数式接口,那么呢,表的是方法引用与构造器引用string vpi啊提到了一个叫进行流和创新流,然后后边呢,呃,当然这一章还讲这个optional类啊,之前呢,咱们讲过的就是接口啊,新的日期时间,API重复注解,类型注解啊,类型推断,这个咱们今天讲也会涉及到啊,还有其他呢,在API层面的一些更新啊,新的编译工具一会儿我们也可以演示一下,还有呢,在账VA8里边我们讲内存结构稍微提到过啊,用原空间叫Meta spacece去替代咱们的永久带。
04:24
啊,也稍微说过这个问题啊,整个呢,就是这样的一些特性啊,这些特性呢,刨出去前面我们讲过的,还有一些呢,细节我们应用的比较少的啊,这块呢,我们主体要讲的就是这样的几个点。哎,这样的几个点,那这几个点呢,我们这个本质上去看一下啊,这个拉姆达表达式这个呢,其实是一套新的一些语法规则了,就像大家呢,刚开始学Java的时候呢,说定义一个方法啊,你知道方法后边一个小括号指名呢,叫参数列表啊,后边一个大括号,哎里边呢,具体的方法要干什么事,写到这个大括号里边,这都属于这个语法上的要求,那么这个拉姆达表达式呢,其实也是语法上的一个新东西。
05:05
啊,是这个意思,然后这个函数接口呢,它属于一个特殊的接口啊,就是这个接口如果只有一个抽象方法,我们就叫做函数式接口,其实是个概念啊,接口本身我们其实已经都讲透了啊呃,关键呢,就是你看它是一个什么特殊的接口啊,也不困难,后边呢,方法引用,构造引用,其实也是基于这个拉姆达表示来讲的啊,这个强大的stream API,这个呢,其实就是JDK8给我们提供了一些新的API啊,它是optional类呢,其实也是包括日期时间的API呢,其实也是。呃,所以呢,呃,一说到扎阿巴这个新特性,大家呢,也不用特别恐惧啊,无外乎呢,就是语法上变一变是吧,再给你加点累,让你看看,诶以前呢,做一些事的时候呢,你那样去做,现在呢,多了一点新的API,哎,你呢也可以这样做,那既然是新的API呢,那你就要看,诶跟以前有什么区别呀,为什么以前那样写,现在非要这样写呢?哎,稍微对比一下,看看它的好处就行啊,所以说我们学习东西的时候呢,大家哎还得把握这个本质是什么啊,有的时候这个东西本身其实并不是特别困难,但是刚开始让你觉得好像很难似的,是吧?哎,当你熟悉以后呢,你发现它里边不就是什么什么吗?
06:15
对吧,哎,当以后大家呢,你学一个框架也好,或者说做一个项目的一个模块也好啊,当你搞定以后啊,能够总结一话说这个东西不就是一个什么什么嘛,是吧,说明你就比较强大了,就哈,说明呢,你已经透过这个外在的这些型看到里边的这个本质了,是吧?行,那这个咱们本身这个基础阶段马上也就结束了哈,这个整个这个基础阶段的话呢,其实呃,也有几句话呢,想这个送给大家哈。或者这几句话呢,其实也是咱们这个整个讲课过程当中,哎,也想这个穿插着给大家提到的哈,就是涉及到这个学习的一些思维方式啊,哎,所以方式第一个点的话呢,咱们这个讲这个动态代理的时候呢,其实提过这个问题啊,或者我们复习的时候啊,复习的时候提到就是学反射,咱们说大家你得知道有几个事儿,尤其是当一个东西比较难的时候呢,一定要从这个高观点上,高观点下去看待,是吧,所以第一个点呢,想说的就是我们早上说的那句话,对大处着眼找找,找着着眼,哎,然后小处着手啊着,一直发现错误啊,哎这个呢,不用多说了,哎这个呢,其实不管是学习方面啊,这个大家生活方面呢,也应该是这样子的啊,这是第一个事儿,然后第二个事的话呢,呃,前面我们也提到过这个问题啊,就是一个叫什么逆向思维啊,然后对应的还有一个叫。
07:45
还什么反正法是吧?哎,怎么叫逆向思维,比如我们在谈一个东西,说这个东西有什么好处,比如多肽有什么好处,反正有什么好处啊,你有时候正面去想这个事呢,可能很困难,说堕胎有什么好处啊,一下给问懵了啊,那你臆想着去想,对没有堕肽,没有反射会有哪些不方便是吧?哎,那么反过来不就是说,哎,它就有什么好处吗?哎,咱们说这有女朋友什么好处啊,我也想想不出来没有,有什么坏处啊,反馈就出来了是吧?啊这些地方逆向思维,然后反正法的话呢,就是说说咱们经常讲一些知识点,会说说什么东西必须要怎么么办是吧,说这个东西不能怎么怎么着啊,像咱们前面典型提到了,说我们这是一个list啊,这个list呢,加上翻型以后呢,是一个object这样的类型,就它了啊沙对应的LIST1,然后咱们如果这还得再写一行代码才行啊,就如果你要是有一个list呢,这个泛型写的是string是吧,哎,这。
08:45
上对应着一个LIST2吧,这个LIST2呢,咱们说就没办法付给LIST1。哎,这呢,我们说这种是错误的是吧,就是说这个不能右边付给左边,为什么?哎,有时候呢,你想这个事呢,可能不容易想,你就反正的去想说假设它是可以的是吧,其实咱们好多这个错误信息报的也都是这样啊,从语法上呢,说不让你这样做,你可以去想假设让这样做会有什么问题啊,因为本身这个语言的规则,咱们一说一执行啊,报错了,或者编译时候就报错了,那就说明编译器就卡到这儿,说不让你这样做,那么本身不让这样做呢,也是人写的,人为什么他要设计的时候说不让这样做,他应该有他的道理啊,跋竟人设计的这个语言,然后大家也是人,你应该大概能懂他设计的这个东西是吧。
09:33
这就提到一个,这个叫叫谁亚里士多德吧,还是谁的这个三段论是吧,三段论就是说这个对大前提小前提,比如说呢,这个是人发明的编程语言,比如Java语言,那第二点呢,就是凡是人呢,你应该懂人发明的这个语言,那第三个点呢,就是你是人,所以你也应该懂,变成你你也应该懂渣拉是吧。啊,所以结论呢,就是说,哎,你应该能学的会扎了是吧?哎前面逻辑呢,你发现没有毛病啊,这就是一个逻辑的一个推论啊,那这里边呢,你相当于是哎它编译不过了,编译不过呢,是因为人设计的时候不让他过,那你就想为什么不让他过,那这时候你就可以反正的去想说万一要是让他过会有什么问题呢?哎多数情况下呢,你都可以解决这个事儿啊,因为他会有一些推论出来的东西是不对的,所以呢,反推说只能这样做啊,如果呢,你要一开始没有这样反应思维就是死记硬背,那其实呢,还是比较浅显的是吧。
10:27
啊,那你就得思维上的,你得记记住它才行啊,然后第三个呢,就是大家要学会呢,就要透过问题看本质是吧?哎,就是外边呢,你看到它都是这个型啊,需要我们这样调,需要这样调,本质上来讲它是个什么东西,比如说集合啊,说集合呢,里边有一个叫list,还说呢,哎非常好,怎么好了,说我们可以替代数组,所以体现了这种动态数组,说以后呢以以后呢,说不用数组了,我们都可以用list了啊,然后透过问题看本质。第三步还是一个数组吗?诶,只不过呢,关于数组的扩容,还有它的插入删除,诶我们这个类里边方法都给你写好了,你直接调就完了啊,所以呢,你要有这种透过问题看本质的这种这种能力和这种想法,以后呢,就是学到很多的这个新的框架,新的一些模块等等,比如说啊,原来我们用这个rus,后来呢,我们不用stress了,我们用比如SMYVC,原来用harberate,后来我们用MY了,你要看诶框架不一样啊,到底它们的本质有什么区别呢?用了哪些改变呢?是吧?哎这样呢,你一对比你会发现呢,其实你呃看了就会更透彻一些,甚至呢,哪天你自己一不爽,说我自己写个框架得了是吧?啊现在呢,可能大家觉得这个嘻嘻笑说可能不太可能是吧,但其实呢,是完全有可能的,那国外的话呢,这些大神比如说写框架了啊,一言不合就重新自己开发一门语言是吧?啊这也是很常见的啊,行这呢就是大家呢,慢慢学习过程当中需要训练的这样的几个点啊,啊这个后边你要学的东西还很多,然后呢,你把握这样的几个问题啊。
12:00
呃,同时的话呢,还有呃,这个我喜欢的这个两句话啊,这个也算写给大家啊,第一句,呃第一句叫什么呀,叫呃以前以前写的啊哎,小不忍啊,小不忍则啊乱大谋是吧,就是现在的话呢,大家你这个学习阶段适当的得能够控制住自己啊,这个游戏的话呢,适当的放松一下,但是别的当上你的一个主业了啊,现在忍不住就影响你后边这个就业,影响就业的话呢,就影响两三年,影响两三年就会影响到五年到十年,就影响到你这辈子了是吧?啊最终一想就是因为玩了这个游戏了啊这个这是一个啊,另外一个呢,叫做这个啊什么呀,叫识时务者为俊杰是吧。看这个啊,就是适当的变通的,其实一般呢,学程序的人呢,就是思维方式长期经过这种逻辑的训练以后呢,其实多少看着其实是有点偏傻乎乎的啊,就咱们做技术的其实就有这种特质嘛,尤其你去坐地铁,你看一看,除了从这个格子衫来看之外是吧,格子衫呀,还有这个背的包啊,能看出来是成员之外呢,其实你看这个气质一看也是想做程序的是吧,那这个不同的行业呢,他这个思维方式确实不一样,大家长期呢,经过这个编程的训练以后呢,你表现出来这个气质由内而外的散发出来,就是成语员啊啊这个当然在你找工作的时候呢,其实是有好处的,一看就是写程序的标准的成员是吧,有的人一看就搞销售的啊,比如你去面试的时候,你千万不要这个西装革履,打领带穿皮鞋,那一看你去应聘岗位是不是错了,旁边那个部门是吧,好的,这个这个it部门来应聘就不对了啊,哎,这是这个事,这个以后呢,大家这个有时间了啊,这个这个比如说毕业以后没事的时候是吧,是。
13:44
上呢,我觉得也可以读一读经济学的一些书哈,其实这个经济学的一些书呢,其实应该让人能够变聪明一些,当然写程序这个聪明是你理性逻辑上的这种聪明,那个呢,训练的是另外一种这个这个思维方式是吧?哎,经济学有经济学的思维方式,然后我们写程序有编程的思维方式,它是不一样的,就是稍微的活泛一点,不要太死了是吧,不要陷及到呃,这个局限到这个这个里边了啊,就经济里边呢,呃,你可以整一本什么生活中的经济学呀,或者你要是再想看的深入一点,那就是去看看什么宏观经济学,微观经济学,哎,或者说这个大家去没事看看这个博弈论呐,啊,你会发现呢,其实蛮有意思的,跟我们写的程序还不一样啊,经济学其实说白了就是研究人的行为嘛,大家都是一个人啊,经济学呢,就是从这个理性上去研究人的日常生活,这个生活习惯,给他模式化,给它公式化,然后呢应用,呃,就是先去抽象出来这个公式,然后呢再应用到实际生活当中啊,你会发现其实很有意思啊,这个呢。
14:44
呃,以后有时间多去读读这个啊,当然读技术书呢也应该啊,就是它是两种不同的思维上方式,别到卡到一个里面了啊行,这个呢,就是这样的,这个几个小点啊,大家以后呢,慢慢的去体会体会啊行,那回过来哎,我们接着呢,还来看咱们说的这章的这个新特性啊,那这个呢透通过现象看本质,其实呢,就是诶Java吧里边呢,给我们加入了一些新的API啊,像这个四跟五以及呢,在这个语法层面多了一个新东西,这个在以前是很好出现的啊。
15:15
啊,当然以前也出现过,你像这个泛型,这不也算是啊,当然出现的相对来讲比较少一些啊,但我们这个拉姆拉表达式呢,算是一个稍微比较大的一个改变啊,大家呢,一会学这个的时候呢,你就看着稍微有点别扭,因为它是语法层面的改变是吧?不像那后边呢,我们讲了个类,那不还是一个,呃,找个对象调个方法就完了,关键呢,你就看这个方法是干什么用的,这是API层面的,那语法层面呢,那就得需要你去记,因为它这个新的格式了,看就这样啊。
我来说两句