00:00
呃,那么视频呢,录到这呢,其实基本上已经可以说结束了哈,但最后呢,还是想跟大家再去聊一聊整个Java的一个生态,包括版本的一个迭代,包括呢,关于这个后期的一些特性推进方面呢,呃,Oracle或者说第三方场上有哪些准备,呃,给大家呢慢谈几句啊嗯,首先呢,我们再来看一下关于GDP版本的一个更新,这个咱们在一开始讲这套视频的时候呢,已经带着大家看过了啊,就是大家呢,作为Java开发的人员,或者呢,以这个学习Java这个语言的这个人员呢,多少应该清楚Java这个版本的一个呃迭代周期,包括呢,我们如何去看待不同的版本,诶我们之前呢说也有一个分水岭,这个分水岭呢就是以JAVA8呃为界限的,之前的话呢,就相当于是以这个特性驱动的,大概每三年左右呢,就会更新一个版本,那么从这个JAVA9开始呢,就改成以时间驱动的方式去更新我们的每一个版本的时间呢,是每六个月做一个更新。那这呢,我们想说的就是呃,在之前的情况下呢,每一个版本呢,官方支持的一个时间,跟我们下一个版本的推出的时间,中间呢,其实是有一个重叠期的啊,那就便于我们这个,比如你在基于六去开发的时候呢,呃,有了七的以后,呃,如果你还在使用六也是没有问题的,我们可以不断的去更新,而且呢,还有一个延期的一个知识时间,这个呢就就更晚了,对吧?啊那么包括这个一九年的这个七月份发布的期,那么在一四年的时候,其实就已经推出八了,中间呢,会有一个重叠期啊,这个呢其实是比较稳妥的啊,那么在以时间驱动这个版本开始更新以后呢,我们发现呢,这个重叠期呢就不存在了,上一个版本的这个维护的一个结束期,就是我们下一个版本的发布期,呃,就是下版本一发布,我们新的这个旧的版本呢,就不再维护了,呃,当然这块呢,主要说的是我们这个叫呃非LTS这样一个版本啊,那LTN版本呢,当然就是长期支持的啊,是这种特例了,行,这个呢,大家要进行一个清楚啊,嗯,也许。
01:56
嗯,不会有太多的公司呢,直接选择JAVA12和JAVA13,但是呢,它离我们具体的生产实践呢,其实并不遥远,我们讲了这么多的新特性,其实里边大家也能够感受到,其实有一些新特性还是非常好的,也会在以后的这个版本当中不断的进行迭代优化啊,稳定到一个长期支持的版本当中,比如说呢,我们在12当中提到一个啊,就是关于G1的一个混合的垃圾回收的问题。
02:19
啊,就是保证了我们垃圾回收的这个时间呢,能够限在限定在用户指定的一个暂停时间之内啊,那么我们在HDFS这个场景当中呢,就使用了这样的一个特性,呃,解决了这个运行时间过长的一个困扰。啊,这是这个事,呃,另外一个呢,目前看也是比较成功的啊,就是我们看到了就是Java或者GM的一个演进,说解开了这样的一个枷锁,怎么理解呢?呃,就是能够看到叫open jdk的一个权力的中心,呃正在转移到开发社区或者叫开发者手中。啊,这个怎么去理解这个事儿呢,就是咱们会看到呢,就是呃,以后每隔三年,比如JAVA8完了以后呢,扎21,扎21完了之后呢,再接下来就是这个17了啊作为这个LTS这个版本。
03:04
嗯,LTS这个版本就是长期制的版本,那对于企业来讲的话呢,我们提供了他们的一种这个选择方式,就是呃,对于大企业来说,或者大厂商来说呢,呃,你只需要呢,去支持这个LTS这个版本就可以了,那么对于这些小版本的迭代,迭代呢,呃,其实更多的呢,交给我们这个开发者社区,呃这个开发者社区的这个各个开发者可以呢,去及时的更新,尝试我们这些新的特性。啊,那么这个小版本迭代呢,我们说每六个月就一次,而且呢,在呃,每隔这个小版本的这个六个月当中呢,还会有两次补丁的一个提供啊,就是让我们及时的去这个了解这些新的特性啊,包括呢,我们去可以参参与到这个新的特性的一个这个创业过程当中啊,是这样子的,嗯,那接下来的话呢,对于这种主流的厂商来说,像amazing总阿里巴巴啊,Red hat啊等等这样的一些主流厂商来讲,由于呢,我们明确了长期支持的LTS版本不像原来一样啊,就是每隔几年发布的版本,但这个版本呢,是否是能够被市场所认可的,这个是不确定的,那那现在呢,相当于我们通过小版本迭代呢,就是可以快速的去试错啊,一旦不好的话呢,我们在下一个版本当中可以及时的去更新,这其实也是诶,互联网思维当中特别重要的一个思想啊,就是快速的去试错啊,这个一旦不好的话呢,其实去修正啊,就是我们很难保证你的一个呃思维一个角色呢是正确的,那我们就及时去修正我们的角色就可以了,一旦呢偏离。
04:33
现在主航道偏类的这个正确的方向呢,我们就及时的拐过来,嗯,是这样的一个情况啊,呃,也就是说以前的话呢,我们以这个这个功能驱动,或者以产品驱动,每隔几年更新一个版本,这个时候我们很难保证,比如说JAVA8呢,诶大家比较认可,那三年以后呢,出了个JAVA9,大家不认可,那这时候呢,主流厂商怎么办呢?啊,要不要呢,把我们主要的产品更新到九呢,这个他就会很疑惑啊,但是现在呢,我们一旦明确了81跟17是我们的这个LTS以后,呃,这个中间呢,因为我们每隔六个月呢,都可以看到一些新的特性的出现,那么这个11呢,很显然它就是一个比较稳定的一个长期支持版本了。
05:10
我们就能够给到这些主流的厂商更明确的一个信息,那么这些主流厂商呢,他们就会呃,纷纷的发布自己的长期制版本的一些产品,他们也竞相的会去竞争啊,JDK的一个主导权啊,你比如像咱们国内的这个阿里巴巴,我们看到他也提供了自己的这个虚拟机,而且阿里巴巴呢,也在国内的这个市场上来讲啊,应该说也提供了很多开源的一些框架啊,还是非常好的啊呃,一个趋势。行,那么这呢是我们提到一些比较好的一些这个方面哈,那另外呢,也能看到就是呃,我们这个小版本迭代周期呢会越来越快,这呢一定程度上会导致我们Java或者GM的一个碎片化,呃这个没有办法,任何事物呢,其实都是有利有弊的,对吧?嗯,那么对于我们这个开发者来讲,我们要不要去迭代呢?呃,整体上来讲还是建议大家呢,就是使用这个LTS,呃版本在我们的生产事件当中,但是呢,并不意味着我们不去关注这些小的版本的迭代,这个我觉得该关注还是要及时关注一下的,因为你下一个长期知识版本,其实也是由这些小版本迭代呃而来的这些稳定版,对吧?嗯,那就比如说嗯,我一样哈,其实我比较喜欢看手机,嗯,比如说每天下班以后比较累了,这个看看科技新闻,比较爱关注的就是这个手机不同家除了拿些手机参数是什么。
06:27
啊,记得几年之前的时候,这个在地铁上,北京的地铁上人也比较多,而且大家都很少交流啊,一般都拿着手机看,以前的话呢,就是你看那个手机的正面,基本上我都可以猜出来他用的是哪一个厂商的什么手机啊,没啥问题,但现在呢,基本上不可能了啊,现在都是这个不是水滴屏就是齐刘海啊,现在也出现全面屏了,已经完全猜不出来是哪一家了,除非呢用的是旗舰机啊才可以。嗯,你像我换手机的话呢,一般我都会这个两年多这样的一个周期之内,我会换一个手机,那比如说就三年吧啊换一个手机就好比是呢,呃,三年出一个LTS版本一样,虽然说我是三年换一个手机,但并不影响啊,呃,每一个厂商出一个新手机的时候呢,我去研究一下这个新手机的一个性能和参数,也正因为我研究了每一个新厂商出的这个呃,小版本这个手机的一个性能和参数,这才后才能够决定或者叫影响我在三年之后换手机的时候呢,我到底要换哪一款手机,因为我时刻关注这些新的特性啊,新的手机的一些参数的。
07:27
变化,那在这个时候呢,我一定会选择一个最适合我的一个手机,而不是说呢,在这个过程当中啊,两耳部分窗外是完全的不关心,这个其实也是不对的,诶也就是说后续的话呢,大家关于十四十五十六等等新特性出来以后呢,也建议大家呢,去关注一下,看一看,呃,但是并不意味着我们看完以后呢,你需要呢,呃去呃,使用这样的一个版本对吧?就跟大街上你看到一个美女的话呢,也是可以欣赏的是吧,不是因为说你娶了自己媳妇以后呢,在街上你眼睛里边全是男人对吧?这个也不正常哈。好,这是这个事,然后下一个的话呢,我们看到说叫Oracle杀手open jdk呢,继续向前啊,这里边就提到一个问题哈,这个JAVA8呢,是咱们目前使用率最高的一个版本,这个一四年发布的这个Oracle呢,对JAVA8呢,官方支持说到2020年的这个12月份,呃,说之后呢,就不会再为个人桌面用户呢去提供,嗯,Oracle jdk8的一个更新修复了。
08:22
呃,那么呃,19年一月份之后,如果呢,你要是没有获得Oracle官方的这个叫。叫什么呀?呃,支持的话啊,就是或者叫认证的话呢,他就不会再提供,呃,就是他不再提供这个免费的商业版的一个更新了,那就言言之义呢,就是要收费了啊,只有你获得相应的一些认可许可之后啊,你才能够获得奥数会官方的一个继续的支持啊,这就需要付费了啊,就是这个意思。那Oracle呢,它的销售代表在一封邮件当中呢,诶这样说的,说张二八呢,非公开许,呃这个可用的关键补丁将会更新到一九年的4月16号,那拥有许可证的客户呢,才可以继续享用,就是之后的话呢,才可以继续享用,那这个邮件继续生说如果没有安装这些更新,可能导致你的服务器和桌面环境呢暴露且易于攻击啊这个信呢,诶被理解成呢,是or瑞有官方的一个敲诈勒索信,呃,对吧,那其实这个信里边呢,我把它一个截图呢,还附到这了哈,呃,比如这块提到说hope this finds you well啊呃,希望呢,一切安好。
09:26
说呢我过来呢,主要是想要告诉你,呃,这个第一个呃叫什么非公共的一个版本呢,呃,关于Java巴的啊,是在4月16号呢,进行一个发布。啊等等,然后下边说呃,没有这个相关的一些许可的话呢,嗯。这个你的这个呃,这个这个什么补丁和更新呢,将是不可获取的,就是说你要想获取这个补丁和更新的话呢,你必须要获取相关的license是吧许可,否则的话呢,你的这个呃服务器或者是你的这个桌面将会暴露,并且呢是易于攻击的啊这就我们理解成是一个敲诈勒索了哈,呃,虽然说奥瑞官方呢做了这样的一个声明,但是也不影响我们社区啊,继续呢,对这个JD可以进行一个更新,那我们更新呢,当然就是针对这个open这DK以进行更新了,哎就相当于我们第三方平台呢,就把这个事呢给承接下来,呃,那这里边我们要提到这个红帽公司,呃,其实之前我们在讲这个JAVA13的时候,呃,这个新特性的时候呢,我们也看到,那除了Oracle公司之外呢,呃,对这个GDK贡献率最高的其实就是红帽公司了,呃,后面包括这个谷歌,包括中国的这个龙鑫啊,包括iapp等等,其实有很多的公司呢,包括IBM是吧?哎,都在进行更新啊好,那这块我们再回来。
10:44
嗯嗯,这块呢,就是说虽然二官方呢,不再进行更新,或者他进行一个付费的一个这个模式了,嗯,这个第三方的或者其他的一些这个大的平台还是继续会支持的,比如红帽计划在2023年之前啊,继续呢提供对open gdk8的一个支持。
11:02
啊,这是这个红帽Java平这个平台的一个首席工程师啊,说的这样的一段话,说在广大的open gdk社区和我的团队的帮助下,我们定期的为关键的bug和安全漏洞呢提供更新,呃,这个呢适用于JDK8,呃,我们也适用于后期的这个open jdk11,呃,所以这块呢,我们还是比较欣慰的,比如说呢,呃,如果对于大厂来讲呢,大家可以去选择Oracle官方的这个付费版本,那么对于我们个人用户或者是中小企业来讲,其实完全可以基于这个open jdk,哎,我们呢,后续啊使用第三方的一些这个补丁啊,进行一个一些这个漏洞的更新啊,避免我们出现啊这样的问题是吧。好,这是我们说的这个事情啊,嗯呃,包括这块还提到这个阿里巴巴的一个情况啊好就过了,嗯,下边我们再看一些关于这个未来的一个展望哈,就我们看到呢,这个扎VA9之后呢,改成以时间驱动这个版本,美丽归月呢,就发布一个这个版本了,呃,而且我们会看到每一个版本当中,他确实呢说了很多的这个新特性哈,呃,那么他是如何保证这个事情呢,可以继续的推进下去啊,因为Oracle官方也提到了说呃,他能够呃保证每六个月发布一个版本,而且绝不食言,那他是如何保证这样个事情的?呃,这块呢,就提到了呃三个项目啊,这个路目项啊,还有下边对应的这两个项目。
12:22
嗯,说呢,自然离不开一系列专注于提高其性能和添加新功能的协作性的这个项目啊,比如说这里提到了,呃,这个人在全球开发者软件开发大会上啊说的说这个Java呢,即将迎来很多超股的东西,那怎么能够说出这样的话呢?呃,主要呢,依托于下面的三个项目,就跟说我们讲一个故事呢,有几条主线一样,哈,啊,这呢,就是对应的三条主线,第一个呢,叫做lom项目。说甲骨文就是奥维公司的这个路项目的一个技术负责人,他在这个全球软件开发大会上,呃,一九年刚说的啊,嗯,他给我们目前的开发者呢,提供了两种说不算完美的选项啊,这个呢,大家看一看,其实也非常容易理解啊,说这个对于开发者来讲,说你要么呢,编写是无法通过扩展处理大量并发任务的简单同步阻塞的代码。
13:12
啊,就针对我们具体的一个呃非呃叫什么呃,异步执行的,你就写更高效的这个代码就可以了,要么呢,你就是编写可扩展的,但是编写难度极高的啊,且调试过程又复杂的,极其复杂的这个异步代码。啊,非常好理解是吧?呃,那么这是目前的一个情况啊,呃,那他呢,呃也提出了,我们在这个路项目当中,他希望呢,能够呃将任务呢,拆分成这个现成的方法,或者叫新的这种现成的方法。真的引入了一个叫I fiver轻量级的用户线程,说利用fiver呢,如果我们能够确保其轻量化的程度高于内核提供的线程,那么问题呢,就得到了一个原版的解答,诶,大家呢,就能够尽可能多的来使用这些用户模式下的轻量级的线程,且不会出现任何阻塞问题。
14:01
啊,这个呢,还在这个研发的路上,而且这个Fi呢推出以后呢,他说具有跟我们thread类使用非常相似的API,这样呢就决定我们,呃这个就意味着我们这个上手的话呢,也不会这个学习路线过于陡峭啊,这就是提高这个Java的一个呃并发性能方面的一个这个终极解决方案吧,就目前来看,我们说的是一个终极解决方案啊,那第二个呢,就提到叫呃amber这样的一个项目。呃,我们在每一个Java版本当中呢,呃,新特性的版本当中,多少都会看到一些呃语法层面的一些变化,那这个语法层面的变化呢,其实就来源于我们这叫amber这样一个项目,它呢支持更小面向生产力的Java语言功能的一个开发,从而呢,加快将新功能添加到我们Java语言的当中的一个速度啊,比如说呢,这块呢,还呃攒着两个没有发布的哈,像这个生字误串,比如我们想表示一个hello word来说呢,可以不用这种双引号的方式来表示啊,还是用这样的一个符号啊,就更加的简洁了啊,这是一个,另外呢,提到这个叫模式匹配。
15:01
来大家看一下,比如我们在进行这个呃强转之前,呃,这个我们需要判断当前这个对象呢,是不是引体的这样的一个实例,如果是的话呢,我们进行一个强转,强转以后,呃再调用你强转以后这个in的相关的方法,这是我们目前的一个写法,呃说呢,简化以后可以这样来做,说我判断这个引用或者这个对象呢,是不是in一个实例,呃如果是的话呢,其实我们直接就里边呢,就做了一个强转,呃就相当于我们这个I呢,在这块引用的时候,就好比是我们强转以后得到的一个新的变量I啊,直接使用就行了,使得我们这个语法呢就更加的简洁,那在不久的将来呢,我们就能够看到这样的一个新特性。啊,再者呢,包于包括这个叫思维表达式,其实我们在一开始讲这个词表达式的时候呢,呃确实呢,我也感受到关于它的一些使用上的一些限制啊,比如当时这关于breaker,大家一定要注意写,否则呢,呃丢了就不行,另外的话呢,我们在这个呃,Switch小括号当中呢,它使用的这个数据类型呢,呃也是非常有限的等等,它有很多的这个条条框框。
16:01
呃,那么我们确实也看到了,在JAVA1023这个版本当中,包括后续的版本当中,还会不断的对Switch进行一个呃,手术刀式的一个这个迭代是吧?诶让我们这个Switch呢,用起来更加的顺手,呃,那么在这里边呢,提到了原来的写法,我们给一个变量赋值的时候,赋完值记得要加break,否则的话呢,它会继续执行下边的case语句,呃,那我们有了这个建头操作符以后呢,可以直接做一个赋值,并且呢,自动的实现了一个就相当于是个break了,就不会自动的去匹配下面的这个case结构了啊这也是一个语法层面的一个变化啊,凡是语法层面变化呢,其实都来源于我们这个叫啊amber这样的一个项目,哎,不断的去支持啊。那第三个呢,就提到这样一个项目啊,这个项目一看这个单词呢,就比较难念啊,啊其实你会发现这个Java也好,或者这个软件开发其他的这个场景也好啊,包括一些框架的名字,呃,不是一些河流,就是一些动物,就是一些这个呃,一些历史事件啊等等的啊这个呢念什么呢?
17:02
嗯,Well,汉ber是吧,外汉ber,呃,这个叫呃,瓦尔哈拉。海是吧,瓦尔哈拉殿堂,嗯,是一个叫什么呀,一个殿堂的一个名字哈,说是这个奥丁,嗯,死亡之神奥丁款待这个阵亡将士英灵的一个殿堂啊heer啊行,知道这个名字就行,说这样个项目是做什么用呢?他主要是专注于支持高级的GM啊,与语言相关的一个并发,呃,我们也会发现在基本上每一个GDK版本更新当中呢,都会涉及到GM或者GC的一些迭代更新啊,或者叫改进,那它呢,主要就来源于我们这个叫外哈这样的一个项目。啊,这是他比如呢,最近又提到一个叫关于value types啊,关于值类型的什么意思呢?嗯,说呢,我们去设置一些新的叫value types这些类型,说新的这些不可变的类型将拥有跟int等机源类类似的内存效率啊咱们知道呢,变量呢分成基本数据类型和引用数据类型啊基本数据类型八种,在操作数据和运算方面,包括内存存储方面呢,具有呃对象难以匹敌的执行效率啊内存占用率等等。
18:11
那么这呢,相当于就设置新的这个值类型,呃,跟我们这个基本数据类型具有类似的这个内存的执行效率,呃,为Java虚拟机基础设施提供处理不可变和无引用对象的一个能力,从而实现呢,使用非机源类型啊,进行高效的按值计算的一个能力啊,那么int呢,我们叫机源类型,那么非机源类型呢,就是我们引入的新的这个类型啊,就是使它使得那个操作呢就更高效了。啊,包括呢,还提到了我们在使用泛型的时候,大家都知道泛型当中只能放着放引用数据类型,像我们这个int类型呢,是基本数据类型是不可以的,那么我们这个value types这些类型呢,也是可以放进来的。那属于这样的情况。好,那这块呢,就相当于我们讲这个新特性之外呢,给大家又拓展一些相关内容,呃让大家呢知其然,知其所以然,并且能够看到呃Java的一个整个的一个思路,就看到的一个场景更多,呃大家呢,每天相当于不仅仅要低下头来写代码,也要看到呃Java未来的一个场景,包括这些大厂,包括Oracle它的一些变革思路啊这就这样个情况,呃,那今天呢,我们这个课程呢,就讲到这里就结束了啊呃,大家呢,关于Java的一个学习,呃,有任何这个想法呢?诶可以通过咱们官网呢联系到我,呃或者大家呢,对于Java学习当中有任何的问题啊,或者说有任何这个,嗯新的一些技术不太清楚的话呢,也可以随时登录咱们官网啊,查看一下咱们最新发布的一些视频行,那么关于我们JAVA1023的这个新特性呢,我们就讲解到这里,谢谢大家,我是讲师宋洪康。
我来说两句