📜  Java 12 的新特性(1)

📅  最后修改于: 2023-12-03 14:42:12.437000             🧑  作者: Mango

Java 12 的新特性

Java 12是Oracle公司发布的一款JDK版本,于2019年3月19日发布。Java 12的主要目标是提升JVM性能,增加开发人员生产力和改进安全性。下面将介绍Java 12的主要新特性:

Switch表达式

Java 12给swtich语句添加了一个新特性,即可以使用作为表达式使用的switch语句。Switch表达式简化了代码并提高了可读性。

public int getMonthValue(Month month) {
    int monthValue = switch (month) {
        case JANUARY -> 1;
        case FEBRUARY -> 2;
        case MARCH -> 3;
        case APRIL -> 4;
        case MAY -> 5;
        case JUNE -> 6;
        case JULY -> 7;
        case AUGUST -> 8;
        case SEPTEMBER -> 9;
        case OCTOBER -> 10;
        case NOVEMBER -> 11;
        case DECEMBER -> 12;
    };
    return monthValue;
}
紧凑的Number Format

Java 12简化了数字格式化工具的使用,提高了开发人员的生产率。

NumberFormat numberFormat = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);
System.out.println(numberFormat.format(1000)); // 1K
System.out.println(numberFormat.format(5000)); // 5K
System.out.println(numberFormat.format(10000)); // 10K
System.out.println(numberFormat.format(500000)); // 500K
安全的HTTP客户端

Java 12引入了新的HTTP API,提高了Web API客户端的安全性。

HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.github.com/repos/openjdk/jdk/commits"))
        .version(HttpClient.Version.HTTP_2)
        .GET()
        .build();
HttpResponse<String> response = HttpClient.newBuilder()
        .build()
        .send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
改进的垃圾回收器

Java 12默认使用G1垃圾回收器,提高了对于超大堆应用程序的性能,同时也改进了低延迟应用程序的性能。

其他的改进

除了以上提到的新特性,Java 12还有一些其他的改进,比如:

  • 应用Class-Data Sharing来加速启动时间;
  • 新的常量工具类,简化代码编写;
  • 隐藏不需要的警告信息。

更多Java 12的新特性详细介绍,请访问官方文档:What's New in JDK 12