00:00
那么接下来呢,咱们就来从整体上介绍一下JAVA14的新得性啊,都有哪些啊。首先呢,我们先记住一个时间,这个呢是2020年的3月17号,那么在这一天呢,Oracle官网发布的啊JAVA14或者我们称为呢叫JDK14,当然呢,我们也可以去称为叫01:14,对吧?就然呢我们以前的这个叫法的话呢,就一点几啊,只不过呢,后来呢,咱们从这个呃五以后啊,我们都称为叫JK5.0了啊,现在呢叫14啊或者叫为01:14啊都是一样子的,这呢是我们这个JAVA14发布的一个时间,当然呢,如果你已经安装了这个14的这个JDK的话呢,并配了环境变量,哎康复在这块呢,哎就杠好一下,一回车也能看到呢,是2020年3月17号这样一个时间没问题,嗯,那么这也是继承了咱们Java采用的每六个月呢,要更新一个版本,从JAVA9开始的,对吧?OK,这呢是列举出来了JAVA8啊及之后每一个版本当中更新的这个新特性的一个数量。
01:03
由于JAVA8跟JAVA9之间呢,我们看到是隔了三年,所以说这里边儿这个新的星的数量啊就非常多,那后续的话呢,是每六个月呢,就要更新一个版本,所以呢,大家会看到咱们在这个JAVA14当中,一共是有16个新特性。这16个新特性呢,已经超过了前两个版本,十二八加五是13对吧,所以14中这个新特性叭较多,但是呢,需要大家掌握的其实不多啊,其实需要大家掌握的也如说也就是说呢,我们要给大家重点讲解的实用的其实并不多,掌握住这几个其实就可以了啊。好,那我们整体上呢来做个介绍说呢,这个版本中包含的GDP,也就是我们所谓说所谓的叫GDK的增强提案,我们刚才提到的16个新特性呢,都是16个GP,它比12跟13加起来多,这咱们已经知道了,在这16个新特性当中,包括两个孵化器模块,三个在预览特征,两个呢被弃用的功能和两个删除的功能。这里边首先呢,我们提到两个词,叫做孵化器的模块和预览特征,什么意思,这块呢我有介绍。
02:06
嗯,简单来说呢,就是孵化器模块呢,就像咱们说看到那个,比如孵那个呃鸡蛋,让他孵出这个小鸡是吧,我们称为呢叫也是一个孵化器,或者说呢,创业公司在这个创业之前,这个呢,我们进行一个项目的孵化,对吧,就是最初的一个状态,也就是说呢,咱们这个未定稿的一些API或者是一些工具,这个我们称为叫孵化器模式,就是这个还没有定稿嘛,所以说呢,我们就把它推出来了,在我们这个新的这个JDK版本当中,让开发者呢去使用,然后去这个获取他们的反馈,这个反馈呢,我们在下一个版本当中不断的进行迭代,就是孵化器模块呢,肯定在下个版本当中就会进行迭代的,诶是这么回事儿,那么这个所谓的叫预览特性啊,实际上呢,它也是没有最终定稿的。因为定稿的话呢,就我们就正式的就写进去了,这叫预览特性,就是还没有定稿,但是它呢,其实又比我们这个所谓的孵化器模式呢,就是又又又又更进一步,对吧,就是比孵化器呢,好像要高高一个层面,就是已经成型了。
03:06
已经成型了,这个孵化呢,你比如说就好比是这个鸡蛋啊,还还还正开始孵,还是这个鸡蛋的一个形态,这个呢,已经是出现这个这个鸡的这个形态了,已经成型了,这个实现呢也确定了,但是呢还没有定稿,就是这个机还没有这个破壳而出,对吧,还没有完全的确定下来,它的主要目的呢,就是为了收集这个开发者的一个反馈,然后便于呢,在后续的版本当中也进行一个迭代。这个迭代呢,最终目的呢,咱们是希望呢把它固定下来,但是呢,它也有可能会被移除,也有这样的风险,对吧,那其实呢,也不光预览特性会有这样的风险,你确定的一些API呢,也有这样的溢出的风险,所以这块呢,这个并不是大事儿,基本上我们看到这个预览的特性呢,咱们在后续的版本当中,通常在某一个版本呢,都会给它固定下来,但是不一定说这个这个版本是预览的,下个版本就会固定,这不一定。哎,这不一定,比如说大家看一下我们这个17个新特性,这呢我是从这个官网当中把这个图呢,都已经截下来了,在这儿能看到是3月17号对吧,发布出来的啊,那这里边呢,我们提到呢,有两个孵化器,这个我给大家标一个这个图,孵化器的话呢,这是一个孵化器,这呢我们称为呢叫打包工具,它是个孵化器,然后下边还有一个就是我们如何去引用这个外部内存的这个API,这呢也是个孵化器。
04:21
嗯,这是这两个,然后呢,提到这个叫实验的这个模式啊,就是写的这个view啊,这就是实验的,这里边提到这个,这个叫模式识别,嗯,也是我们这个GD10词当中的一个非常重要的一个新的特性,还有呢,这个record啊,也非常重要,非常有意思的,非常便便捷的一个这个新的结构啊,这个大家呢,我们讲到这块你就知道了啊,然后还有一个呢,就是我们这个test blocks,就是文本块,这个呢,在咱们上一个版本当中啊,其实提到过这个text blocks也是我们这个KJDK13当中,所以你看我这块写的叫second,不是我写的哈,这个官方说的叫preview,就是第二次的预览。
05:01
就是我刚才提到了说上个版本预览了,下个版本不一定就固定下来,这个我们的文本框就是又预览一下,那下个版本有可能它就被确定下来了,这是这样子的,然后说两个被弃用的功能,两个被删除的功能大咱们看一下都是分别是什么。这个被弃用的呢,这块我们看到一个叫pated,提到这个salaries和Spark这样的一些端口,还有呢,是我们这个啊powerll jc,还有我们这个CO的这个JC,它俩的一个搭配,一个呢是一个,嗯,新生代的,一个是老年代的,它俩搭配呢,被这个过时了,就是不再去使用了,那么可以预见的就是在未来的版本当中呢,它要被干掉。对吧,大家没看掉啊,OK,然后的话呢,还有移除的啊,移除呢,这里边就提到一个叫CMS,那早期开发的这个程序员呢,肯定知道CMS后期呢,我们用这个g first进行替代了,那现在已经把这个CMS呢,完全做了一个移除,注意是移除啊,在新的GD版本当中不存在这个CMS了。这个这是一个,还有呢,移除呢,就是提高了这个呃派200这呢是对我们这个呃炸包呢进行一个压缩的这样的一个API。
06:08
好,那么这呢是我们整个呢,就看到了这16个,这16个当中我加红框的就是我们重点要讲解的一个实用当中涉及到代码层面的一些这个结构啊,后边呢,咱们首先上来呢,就讲这五个OK。啊,再接着我们再介绍一下啊,那么这些新特性当中,我们刚才说了,一共是有16个大的变化啊,那这16个大的变化之外呢,其实还有很多一些小的一些补丁,一共呢,修复了1986个在这个ZR上的一个问题,嗯,这里边呢,有1458个呢,是Oracle员工提供的,其他的528个呢,来自一些独立的开发者或者一些公司,这呢是一个占比图,那这个占比图中最大的这个Oracle,那其中有一家中国公司,大家知道是哪家吗?就这家哎龙鑫,哎中国的龙鑫啊,大概呢,你看应该排第一第二第三第四吧。所以呢,还是很厉害的啊,这个在咱们国内呢,当然毫无疑问呢是排第一的,前面呢就是Oracle,然后红帽组织,还有SAP,谷歌,这个比谷歌呢,提供的这个贡献还要大一些是吧?这个大家了解一下就行啊,那么我们刚才呢,提到了一共是有16个大的特性,在这16个大的特性当中,我们这个了解一个人,这个人呢,之前我也没见过,那我看到了这个官网发布的这个消息之后呢,然后在点的时候发现其中有几个特性呢,就是这一个哥们提出来的,哎,他叫mark rain holdd是吧,很厉害啊。嗯,左边呢,是列出来我们这16个新的特性当中,我加红框的呢,都是他提的12345,是不是五个呀。
07:37
这五个里边呢,还有咱们刚才要提的这个重点的一个呢,是这个ince这个模式识别,还有呢这个哎都是还有这个文本框是吧?这这三个啊,非常重要的结构都是他一个人提出来的,很厉害啊,神级的人物,他是呢,JDK1.2和5.0的这个首席工程师,5.0呢是我们JDK这个第一个里程碑式的一个版本,对吧?然后扎VA6呢,这个规范的制定的负责人,还是789的项目和规范的一个负责人,目前呢,是在open jdk社区的领导JDK这个项目。
08:07
很强,这是一个神奇人物,大家呢了解一下,然后呢,我们这个为了讲解这个新特性啊,通常呢,上来呢,都还是给大家稍微的普及一下咱们这个JDK的一个版本迭代的一个方式啊,变了目前呢,这两个黄色的呢,表示的叫LTS,就是我们所谓的叫长期支持的版本。啊,也就是说呢,这个这个版本呢,它维护的时间比较长,像这个扎巴在这个2023年左右是吧,还一直会被维护维护啊,当然了,在之前的这个Oracle自己官方呢,维护的这个时间,对于商务呢,是到19年一月份已经过了,然后二零年的这个,呃,12月份它会停止对这个非商务的一个更新,那么再之后呢,就交给这个open gdk社区来进行维护到2023年。正呢是我们说这个JAVA8,大家呢,目前在公司当中应该没有什么意外的话呢,用的都是JAVA8,那如果说我要不用JAVA8,用一个比较新的用谁呢?那毫无疑问的肯定是用JAVA11嘛,哎,因为JAVA11呢也是一个LTS。
09:04
这个一四年,这呢是一八年,中间呢是隔了这个四年的时间,四年半是吧,这个三月,这是九月啊,这个张21的话呢,它是在2022年,这呢是也是我们的GDK的一个社区,它呢就停止更新了,后面还有个延期的一个时间。啊,是这样一个情况,那么除了这两个版本,到咱目前这个叫JAVA14中间的这个红色的,就是每隔半年更新一个版本,大家呢就会知道,就是呃,每当新的版本呢,发布的时候呢,也就是上一个版本呢,叫寿终正寝的时候,它就停止更新的一个时间,这呢都是我们所谓的叫小版小版本,包括呢,咱们现在讲的这个JDK14也都是小版本。但是呢,这个GDK14当中有一些非常好用的功能啊,说白了就这意思,那在明年明年这个九月份的时候呢,会发布这个JAVA17,它呢也是一个新的LTS的版本。就是到那个时候呢,如果大家你想装一个长期支持的版本的话呢,你可以考虑装这个JAVA17对吧,也就这意思啊,那这呢就是列举出来另外一个维度来看,我们每一个版本呢,它维护的一个时间非常短,红色的话呢,是LTS的版本。
10:14
OK,这个大家了解一下就行,对吧,那么在刚才这个介绍图里边呢,提到过叫Oracle,还有呢叫open jdk,这里边给大家普及一个概念,叫做Oracle的这个JDK和JDK有什么区别。啊,正常来讲呢,大家应该是清楚这个区别的啊,嗯,应该这么说,在这个嗯之前,就咱们说这Oracle jdk啊,它首先明确一个事儿啊,就它不是商,它不是这个免费提供的,它是一个商用的,对吧?哎,就是要收费的啊open jdk的话呢,就是我们所谓的这个开源的一个JDK,咱们之二的话呢,在之前的版本当中没记错的话呢,应该是大概是六吧,诶我们就做了一个JDK的一个开源,对吧?嗯,在之前的时候呢,这个Oracle jdk和open jdk啊,他们这个代码是不一样的。还是不一样子的,也就是说呢,这个Oracle jdk它存在一它自己商用的一些特性,它要收费的,嗯,但是的话呢,在这个JDK11的时候啊,有一个大的变化,就是基本上在JDK11的时候呢,这个Oracle jdk和open jdk他们俩呢,就共享了绝大部分的代码。
11:17
啊,像这里边看到的这个,嗯,其实这个特性呢,是Oracle收购了叫j rocket之后,J rockcket里边呢,像GMC,包括这个呃,叫飞行记录器记录仪是吧?哎把这个特性呢,其实都移植到了叫open jdk当中,所以大家呢,其实目前呢,你可以看作or Oracle jdk和open jdk呢,哎,就是一样的这个代码结构。啊,就基本上是一样的这个代码结构啊,只不过呢,一个是闭源的,一个呢属于开源的啊这样的一个情况,哎就可以了啊行这呢做一个了解,然后最后呢,这块有一个话啊有一句话啊说呢语言呢必须发展,否则呢,他们会变得呢,哎无关紧要,这个呢,是甲骨文的这个非常厉害的一名甲骨一名这个架构师,在这个一九年的一个大会上呢,说的这样的一句话。
12:04
嗯,我们也确实看到了Java呢,这个非踌快速的做一些迭代,那么互联网的话呢,也确实这样子的,大家呢,应该都听过一句话是吧,叫做小步快跑。快速迭代,这呢也是中国互联网现在呢一个大的变化趋势,那以前的时候呢,我们一个项目呢,花两个月或三个月的时间,我们更新一个版本,那目前呢,我们看到了每一周可能都要上线一个新的版本,这呢就是互联网的一个特点,那也看到了就是在这个。Oracle的这个带领下啊,JDK呢,这个迭代速度呢,也非常的快啊,来迎合我们这样的一个变化趋势,OK行,那么接下来呢,我们就来具体讲解这些新的特性。
我来说两句