7个理由:从Java8升级到Java17

从Java 8 到 Java 20,Java 已经走过了漫长的道路,自 Java 8 以来,Java 生态系统发生了很多变化。最显着的变化是 Java 的发布节奏。Java 8 于 2014 年发布,Java 17 于 2021 年发布。这两个版本之间相隔了 7 年。Java17是一个长期支持(LTS)的版本,会有更稳定和持久的维护和更新。

如果你和我一样,已经使用Java 8很长时间了,觉得需要了解一下Java的新特性,那么这篇文章就是为你准备的。


自从Java 8以来,Java增加了很多新特性,但并不是所有的特性都有用和受欢迎。所以我整理了一个列表,列出了自Java 8以来Java增加的最受开发者欢迎的特性,你可以用它作为参考来迁移。


1. 局部变量类型推断


这是自 Java 8 以来添加到 Java 中的最受欢迎的功能之一。它允许你在不指定类型的情况下声明局部变量。类型是从表达式的右侧推断出来的。此功能也称为var类型。

在上面的示例中,两个程序将生成相同的输出,但在 Java 10 的情况下,我们使用而var不是指定类型。


2.switch表达式


在 Java 14 中使用 switch 表达式时,你不必使用关键字break来跳出 switch 语句或return在每个 switch case 上使用关键字来返回值;相反,你可以返回整个 switch 表达式。这种增强的 switch 表达式使整体代码看起来更清晰,更易于阅读。


3.文本块


文本块是 Java 15 中添加的一项新功能。它允许你在不使用转义序列的情况下创建多行字符串。这在你创建 SQL 查询或 JSON 字符串时非常有用。在下面的示例中,你可以看到使用文本块时代码看起来更加简洁。


4.Records


记录Records是添加到 Java 14 的一项新功能。它允许你创建用于存储数据的类。它类似于 POJO 类,但代码少得多;大多数开发人员使用 Lombok 生成 POJO 类,但是有了记录,你就不需要使用任何第三方库。在下面的示例中,你可以看到创建记录类所需的代码非常少。


5.模式匹配instanceof


模式匹配instanceof是 Java 16 中添加的一项新功能。它允许你将instanceof运算符用作返回已转换对象的表达式。当你使用嵌套的 if-else 语句时,这非常有用。在下面的示例中,你可以看到我们如何使用instanceof运算符来捕获Employee对象,而不是进行显式转换。


6. 密封类


密封类是添加到 Java 17 中的一项新功能。它允许你将类或接口的继承限制为一组有限的子类。当你想将类或接口的继承限制为一组有限的子类时,这非常有用。在下面的示例中,你可以看到我们如何使用sealed关键字将类的继承限制为一组有限的子类。

密封类的子类可以声明为finalnon-sealed。final 子类不能进一步扩展,而非密封子类可以进一步扩展。


7. 有用的 NullPointerException


NullPointerExceptions 是 Java 14 中添加的一项新功能。它允许你获取有关NullPointerExceptions. 这在调试时非常有用NullPointerExceptions。在下面的示例中,你可以看到相同的代码如何NullPointerExceptions在 Java 8 和 Java 14 中生成不同的结果,但在 Java 14 中,你可以获得有关异常的更多信息

我没有介绍自 Java 17 以来添加到 Java 的所有功能,但介绍了最流行的功能。如果你想了解更多关于 Java 的新特性,可以查看下面提供的链接。

参考

  • JDK 10 功能 — https://openjdk.org/projects/jdk/10/
  • JDK 11 功能 — https://openjdk.org/projects/jdk/11
  • JDK 12 功能 — https://openjdk.org/projects/jdk/12
  • JDK 13 功能 — https://openjdk.org/projects/jdk/13
  • JDK 14 功能 — https://openjdk.org/projects/jdk/14
  • JDK 15 功能 — https://openjdk.org/projects/jdk/15
  • JDK 16 功能 — https://openjdk.org/projects/jdk/16
  • JDK 17 功能 — https://openjdk.org/projects/jdk/17
来源:程序小媛
后端专属技术群

构建高质量的技术交流社群,欢迎从事编程开发、技术招聘HR进群,也欢迎大家分享自己公司的内推信息,相互帮助,一起进步!

文明发言,以交流技术职位内推行业探讨为主

广告人士勿入,切勿轻信私聊,防止被骗

加我好友,拉你进群

相关推荐

  • 基于Transformer和注意力的可解释核苷酸语言模型,用于pegRNA优化设计
  • 像搭乐高一样做数学定理证明题,GPT-3.5证明成功率达新SOTA
  • ChatGPT上新文件分析、自动搜索等功能,初创公司的产品被取代?
  • 苹果文生图大模型亮相:俄罗斯套娃式扩散,支持1024x1024分辨率
  • 图灵奖得主吵起来了,LeCun:Bengio、Hinton等的AI灭绝论是荒谬的
  • 比亚迪今年的薪资。。
  • 生成式AI迫使Stack Overflow裁员28%
  • 雷军谈澎湃OS存储扩容;传字节除夕统一放假;小米14开机画面显示仍基于安卓;大众汽车软件部门计划裁员 2000 人
  • Windows 11 发布两年,仍“远远落后”于 Windows 10
  • 马斯克440亿美元收购Twitter一年后:全力“下云”,成本速降60%,功能代码从70万行减少至7万!
  • 一个小技巧,显著提升大模型推理能力!加州大学提出MAF多反馈框架
  • 视觉霸主SAM和文图霸主CLIP强强联合!苹果联合UIUC,发布统一视觉模型SAM-CLIP,或掀起多模态新浪潮
  • 一次出手3个项目,LP会不会觉得我太冲动了?
  • 🥇 2023人工智能年度评选!还没截止,别错过了 🤩
  • 百川智能推出全球最长上下文窗口大模型Baichuan2-192K,一次可输入35万字超越Claude2
  • 豆瓣9分线代教材免费了!斯坦福伯克利都在用,新版PDF直接下载
  • ChatGPT再进化!全工具All in One,网友:多少创业项目死于今天
  • 中文最强开源大模型来了!130亿参数,0门槛商用,来自昆仑万维
  • 科学春晚,还得是B站:稚晖君机械臂搭广寒宫,院士下半身直接消失
  • AI让霉霉说中文,口音那叫一个地道!背后的中国初创公司7个月收入百万美元