Java JDK各版本特性

一、Java 8 之前版本重要的特性

        Java 8 之前版本中有一些重要特性和改进。以下是其中一些主要特性以及它们发布版本:

Java SE 7(发布于2011年):

  • Switch 字符串:允许在 switch 语句中使用字符串。
  • 泛型的类型推断:允许在实例化泛型时,不需要重复指定泛型参数类型。
  • 改进的异常处理:引入了多个异常的捕获方式,提供了更灵活的异常处理方法。
  • try-with-resources 语句:简化了资源(如文件、数据库连接等)的打开和关闭操作。

Java SE 6(发布于2006年):

  • 脚本语言支持:通过 JSR 223 实现了与动态语言(如 JavaScript 和 Groovy)的集成。
  • JAXB(Java Architecture for XML Binding):提供了一种通过注解来进行 XML 数据绑定和解析的方式。
  • 集合框架增强:包括新的集合类型(如 Deque 和 NavigableSet)、支持并发访问的集合类等。

Java SE 5(发布于2004年):

  • 泛型类型:引入了泛型,使得可以在类、接口和方法级别上使用类型参数。
  • 增强的 for 循环:简化了集合和数组的遍历操作。
  • 自动装箱和拆箱:允许自动在基本类型和对应的包装类型之间进行转换。
  • 可变参数:允许定义可以接受可变数量参数的方法。
  • 枚举类型:引入了枚举类型,使得可以定义一组有限的命名常量。

二、Java 8 新特性

 以下是一些Java JDK 8 主要版本的特性概述:

  • Lambda 表达式和函数式接口
  • Stream API 进行数据流操作
  • 默认方法(接口的方法可以有默认实现)
  • 新的日期和时间 API(java.time包)

 三、Java 11 新特性

         从 Java 10 开始,便引入了局部变量类型推断(Local Variable Type Inference)这一关键特性。类型推断允许使用关键字 var 作为局部变量的类型而不是实际类型,编译器根据分配给变量的值推断出类型。这一改进简化了代码编写、节省了开发者的工作时间,因为不再需要显式声明局部变量的类型,而是可以使用关键字 var,且不会使源代码过于复杂。

可以使用关键字 var 声明局部变量,如下所示:

var s = "Hello Java 11";
System.out.println(s);

但是在 Java 10 中,还有下面几个限制:

  • 只能用于局部变量上
  • 声明时必须初始化
  • 不能用作方法参数
  • 不能在 Lambda 表达式中使用

        Java 11 与 Java 10 的不同之处在于允许开发者在 Lambda 表达式中使用 var 进行参数声明。乍一看,这一举措似乎有点多余,因为在写代码过程中可以省略 Lambda 参数的类型,并通过类型推断确定它们。但是,添加上类型定义同时使用 @Nonnull 和 @Nullable 等类型注释还是很有用的,既能保持与局部变量的一致写法,也不丢失代码简洁。

  • 字符串新增方法:String类新增了一些实用的方法,如isBlank()用于检查字符串是否为空或只包含空格,strip()用于去除字符串首尾的空格,lines()用于将字符串拆分为行等。
  1. isBlank():用于检查字符串是否为空或只包含空格字符。

    示例: String str = " "; if (str.isBlank()) { // 执行逻辑 }
  2. strip():去除字符串首尾的空格字符。

    示例: String str = " Hello World "; String trimmed = str.strip(); // 返回 "Hello World"
  3. lines():将字符串按行拆分为 Stream<String> 对象。

    示例: String str = "Hello\nWorld\nJava"; Stream<String> lines = str.lines(); lines.forEach(System.out::println); // 输出每行的内容
  • 基于HTTP/2的标准化的HTTP客户端:Java 11引入了一个全新的标准HTTP客户端API,支持HTTP/2协议、异步和响应式操作。

参考:

在线文档-jdk-zh (oschina.net)

在线工具 - ioDraw (matools.com)

Java 11 中文版 - 在线API手册 - 码工具 (matools.com)

猜你喜欢

转载自blog.csdn.net/weixin_49171365/article/details/129016343