当前位置: 首页 > news >正文

有点意思!Java8后最有用新特性排行榜!

相信这两天看了 JDK 25 新特性的同学已经彻底对 Oracle 失望了,这那是挤牙膏啊?是连牙膏都懒得挤了。

所以,大家都在评论区喊话,如果你(Oracle)实在不想发可以不发,但不要糊弄大家。

那么,今天呢。我也把从 JDK 8 之后的长期支持版:JDK11、JDK17、JDK21、JDK25 的新特性都捋了一遍,并且对于这些新特性做一个受欢迎的新特性排行榜,希望得到各位大佬的指正和补充,欢迎评论区留言。

HOT1:Record

诞生于 JDK 14,正式发布于 JDK 17。

Record(记录)是一种特殊的类,用于建模纯数据载体。

public record Person(String name, int age) { }  Person p = new Person("Alice", 30);  
System.out.println(p.name());  // 输出: Alice  
System.out.println(p.age());   // 输出: 30

Record 类型自动提供了构造方法、访问器(getter)、equals()、hashCode()、toString() 方法以及一个解析器(parser),无需定义 Class,且把 Lombok 的事情也做了。

使用场景

前后端使用 JSON 交互时,可能需要传递各种属性,这个时候很难定义统一的 VO 对象,有了 Record 之后,可以非常方便的接收前端发送的 JSON 参数。

HOT2:虚拟线程

轻量级线程(Project Loom),极大提升并发性能。JDK 21 最有用的特性,没有之一。

1

虚拟线程的创建方式,主要有以下 4 种:

  1. Thread.startVirtualThread(Runnable task) -> 创建并启动虚拟线程。
  2. Thread.ofVirtual().unstarted(Runnable task) -> 只创建不启动虚拟线程。
  3. Thread.ofVirtual().factory() -> 只创建虚拟线程工厂。
  4. Executors.newVirtualThreadPerTaskExecutor() -> 使用线程池的方式创建虚拟线程。

最常见的使用方式:

// 创建并启动虚拟线程
Thread.startVirtualThread(() -> {System.out.println("Do virtual thread.");
});

虽然,我一直都在用线程池或动态线程池,并没有真正的使用到虚拟线程,但就感觉这个技术设计的很好,以后可能会用到。

HOT3:switch

到了 HOT 3,个人就觉得比较有争议了,但从实用性上来讲还是选择了这个比较常用的功能 switch。

switch 这个技术比较奇怪,几乎每个版本中都有对于 switch 的升级,JDK 17 中 switch 支持了箭头表达式,JDK 21 新特性正式转正,到了 JDK 25 还有预览版特性的扩充,真的很神奇。

目前 switch 我们可以这样用了:

// JDK 17 (正式特性)
public class SwitchJDK17 {public static void main(String[] args) {String day = "MONDAY";// 1. 使用箭头语法 -> 直接返回值,无需 breakString typeOfDay = switch (day) {case "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY" -> "工作日";case "SATURDAY", "SUNDAY" -> "周末";default -> "未知";};System.out.println("typeOfDay: " + typeOfDay);// 2. 如果需要执行多行代码,使用 yield 返回值int num = 2;String result = switch (num) {case 1 -> "一";case 2 -> { System.out.println("这是数字 2");yield "二"; // 在代码块中使用 yield 返回结果}case 3 -> "三";default -> "其他";};System.out.println("result: " + result);}
}

小结

新特性到了 HOT3 之后就更不知道怎么排了,第一,确实有用的新特性太少;第二,新特性确实太少。当然,最重要的是第二点。各位大佬是什么想法?欢迎评论区留言讨论。

本文已收录到我的面试小站 www.javacn.site,其中包含的内容有:场景题、SpringAI、SpringAIAlibaba、并发编程、MySQL、Redis、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、JVM、设计模式、消息队列、Dify、Coze、AI常见面试题等。

http://www.sczhlp.com/news/113043/

相关文章:

  • 数据结构 Trick 之:KDT 求 k 近/远 点
  • .NET 8程序配置版本及产品信息
  • C语言第二讲:进制转化
  • 北京网站优化推广分析建设项目查询官网
  • 做网站的缺点网站权重到底是什么
  • 佛山网站搜索优化深圳做网站的公司 cheungdom
  • 怎样做网站认证unix系统安装wordpress
  • 厦门网站建设咨询一站式
  • 什么叫网站开发苏州怎么做网站
  • 网站建设技术是什么域名续费哪里便宜
  • wordpress做cms网站车身做网站宣传图
  • 怎么改网站上的logo扬州抖音seo
  • C++ 常用关键字
  • 嘉定制作企业网站电商平台财务如何做账
  • 网站上线如何做公司名字中企动力邮箱手机版
  • 购买腾讯云主机可以直接做网站域名解析器
  • 建立一个网站英语微营销论文
  • 网站怎么做移动端适配北京电子商务app网站建设大兴
  • 【AP出版】第四届数理统计与经济分析国际学术会议 (MSEA 2025)
  • 数据结构 Trick 之:区间子区间计数
  • mapstruct.Mapper|Mapping详解
  • 抽象代数-学习笔记
  • 武安市城乡建设局网站建程网是正规网吗
  • 渭南做网站都有哪些wordpress联系浮动
  • 杭州自助建站软件东莞广告公司有哪些
  • 青岛市做网站优化海安公司网站建设
  • 云南网站排名政务服务网站建设运行情况
  • 茌平企业做网站推广WordPress配置阿里云cdn
  • 石家庄外贸网站制作济南工程造价信息网
  • 国外做ppt的网站南充市房产信息网官网