Cay S.Horstmann:从Java新特性看Java的未来

ecd855c0972d7b1bd295ce3f0330d26b.gif

7c43a9199e6f13e1c02dc01976a6cc94.png

6月11日,由国内Java技术传播领军机构机械工业出版社华章分社培生教育集团联合发起的【Java核心技术大会2022】盛大召开!8个专场、24个主题演讲,从6月11日起至6月18日连续8天在线直播,众多行业领军人物带你深入探讨Java生态!

峰会首日我们特别邀请到《Java核心技术》等经典书籍作者Cay S.Horstmann教授进行专场分享,本场分享得到20余家行业媒体的共同关注,百余家技术企业深度参与。下面让我们再次回顾Cay S.Horstmann教授的观点分析与亮点摘要。

Java技术的坚定倡导者

b3dcba52824c863e7b9de4ac3eac1b49.png

凯·S.霍斯特曼(Cay S.Horstmann)

Cay S.Horstmann教授是一位从未远离过产业界的Java技术大神,美国圣何塞州立大学计算机科学系教授,国际计算机协会ACM杰出会士,常年在国际上的各类计算机峰会上进行技术分享。在过去的30余年当中,为硅谷输送了大批的IT人才。出版了《Java核心技术》等经典书籍。

本次会议由来自培生集团的全球版权部中国区高等与中小学教育版权总监李乐强先生担任专场主持人,阿里云程序语言与编译器团队负责人、Java Champion李三红先生担任技术主持人。

8ec3edcf7f144e81befdcf071338882f.png

李乐强

92cda297e5055a1609126c2a057728da.png

李三红

主题:Upcoming Features in Java: Amber, Loom, Valhalla, and Beyond

主要内容分为三大部分:

  • Java的创始精神、历史概览及新版本发布节奏

  • Java项目、Java增强提案及特性预览

  • 重点新特性解析

1. Java的创始精神、历史概览及新版本发布节奏

  • Java创始精神

引用了Java之父James Gosling的一句话:“Java是一种蓝领语言,它不是用来完成博士论文,而是用来完成工作的一门语言。”并介绍了Java的11个关键词:简洁、面向对象、分布式、健壮、安全、体系结构中立、可移植、解释执行、高性能、多线程、动态。

lJava的历史概览及新版本发布节奏

9c7fd4ed3c14a9f75f5192ed93292254.png

▲ Java历史概览

95d9b59f3af86b0de0cc8b464afe3b83.png

▲  版本发布节奏

2. Java项目、Java增强提案及特性预览

  •  Java项目(Projects)

    Amber、Valhalla、Loom、Panama、Kulla、Sumatra等

  • Java增强提案(Java Enhancement Proposal,JEP)

  • 孵化模块 (incubator module)及特性预览(preview feature)

    从典型模式匹配特性谈到了Java的模式匹配演进,介绍了Java 14中switch的4种形式,Java 16中instanceof的模式匹配,以及对Java 19和未来版本中一些模式(array、vararg、deconstruction)的展望。并重点解析了Java 19中switch的模式匹配、record模式等,还提到了一些痛点。

3. 重点新特性解析

  • 字符串模板(String Template)

    包括text block、string interpolation、字符串内嵌表达式、policies等。

c793a814cebe6a8a362953ac67fe76d8.png

▲  用字符串组成的Horstmann面部

  •  Loom


    Loom是Java整个演进历史上非常重要的一个事件。大家都知道,整个计算机的算力目前已经进入后摩尔时代,我们一直说向多核时代演进。Loom在多线程、多核处理方面非常重要,Cay S.Horstmann提到,在处理典型的Web应用时,会需要大量的线程块,需要去处理ROI、处理Database,而Loom面对这些场景,一方面可以极大地降低多线程编程的代价,另一方面也可以极大地提高应用的吞吐量。


    此外,还延伸介绍了相关的结构化并发、结构化任务、虚拟线程及其构建等。

  • 其他特性

    精选了Java开发和演进过程中其他一些比较重要的特性,包括Valhalla,在Valhalla里面重点介绍了3个Bucket(identity classes、value classes、primitives),并分别展开进行了讨论,这些东西都是为了让Java本身更好地轻装上阵。

5a42546cfe56a7fe0bd92b71775e3ced.png

▲  对象与8种基本类型的比较

之后还介绍了一些外部函数和内存API(典型应用包括C++机器学习库的接口),以调用C函数为例进行了讲解。

  • Graal

最后介绍了Graal编译器,谈到了它的一些优势,比如提供了解决Java冷启动非常慢的问题的一个很好的前沿实践。

分享结束后,在李三红先生与Horstmann教授的互动QA环节中,观众们非常踊跃,互动长达近一个小时,甚至在评论区直接展开了热烈讨论,以下是部分精选问题:

问题一

Q:如何才能从普通开发者成为优秀开发者?需要具备哪些素质?

A:是的,这是一个比较复杂的问题,因为你不可能在所有的领域都成为有经验的专家,所以你会需要选择一些方向,然后在这些方向真正变得擅长。例如,如果你真的想成为一个Java语言特性的专家,能够针对Java的新版本对你的团队就语言的哪些部分、哪些API方面提供指导,那你就需要对Java的新版本有透彻的研究,成为这方面的一个专家。

如果你想进入微服务领域,你就需要有针对性地开始一些探索性项目。实际了解一些基准和一些性能,这样你自己才能了解一些实际的数字,不要只是读一些说自己的微服务是很酷的东西的博客。你需要自己深入了解。我知道对有些人来说这很容易,因为他们的公司或生活状态给了他们机会来做这些事,这真的很耗时。而有些公司在这方面就不那么友好了。因此,你必须认真思考你要如何适应这些情况,你是否需要说服你的老板给你一些时间来尝试这些东西?你是否需要在晚上或周末加班工作?

为了保持领先,我真的觉得每个开发人员都应该认清,你不可能什么都知道,而且有这么多新的东西还在不断出现。这是相当具有压倒性的。你必须认真挑选一些你想成为专家的领域或愿意学习的知识,挑选一些你认为对你的职业生涯会有帮助并且你自己也感兴趣的东西。这对每个人来说都是不同的……

问题二

Q:对于新兴的语言Go还有Rust怎么选择?它们是否会影响Java市场?

A:在项目轻量化交付方面,Java依然无法与Go或者Rust应用程序竞争,因为虚拟机需要负载的额外工作量会更大。Go和Rust在启动时间方面会更有竞争力。但是,应用程序的规模可能就不一样了。所以问题还是在于,你的业务目标是什么?如果你确实需要写一段代码,让它只需要较小的空间和较少的启动时间,那么Go或者Rust会更加合适。但它们的代价相对较高,尤其是Rust,它不是一门容易开发的语言。

你是否必须了解内存跟踪?编译器会给你混乱的错误信息。你的生产力会很低。现在如果你想写一个系统,Linux内核会允许用Rust提交。如果你想在这个级别上写些东西,那么这是个不错的选择。但是如果你写一个商业应用,你真的想用它们来写商业逻辑吗?这似乎很牵强,而Java语言的设计来表达商业模式是很自然的。它提供了特定的、更现代的形式。它提供了很自然的方式,而Go和Rust没有。它们主要面向的是底层的编程。

因为Go主要面向的是需要快速启动的短程序,不需要太多的时间。如果你的主要目标是通过将任何商业问题快速准确地转化为代码来获得商业价值。那么Go不是首选,这方面Java是一种更好的语言……

问题三

Q:现在市面上关于Java的书越来越多,Core Java为何能更新这么多版,还一直在全球畅销,您怎么评价自己的这本书,它最大的特色是什么?

A:现在市面上的书确实很多,但是Core Java会告诉你Java怎么工作,其背后的原理,哪些是好的,哪些是坏的,这本书里面积累了我自己多年在整个Java领域非常专业的一些经验,可能主要源于实践,这个可能也是和市面上其他的一些书,也就是那些可能就是遵照一些技术文档写的书,最根本的不同。

面对危机,Java正在尝试哪些变革!未来,Java是会继续向前、再攀高峰,还是由盛转衰?让我们继续关注#Java核心技术大会2022,共建Java生态。

一键预约

e4c1b51a3c2e89da27984eb4cc39798c.png

▲点击以上图片进入专题

更多精彩回顾

资讯 |《Java核心技术》基于Java 17全面升级!

干货 |再见了Java8,Java17:我要取代你

资讯 | Java核心技术大会2022 · 重磅发布

书单 |今天,Java27岁了!

书讯 |6月书讯(上)| 浅夏读新书,与世间万物一起成长

书讯 |6月书讯(下)| 人机物三元融合,开启新世界大门


7e4abe5f5f33fb590699bad83aa14ef1.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值