JDK 11.0.18_linux-x64_bin.tar:详细介绍

发布时间:2023-05-23

一、下载和安装

JDK 11.0.18是Oracle JDK系列的一个版本,用于开发Java应用程序,提供了编译器、JVM和其他必要的类库。 下载JDK后解压缩到指定目录,设置JDK的环境变量使其可以被你的应用程序调用:

$ tar xvf jdk-11.0.18_linux-x64_bin.tar.gz
$ sudo mv jdk-11.0.18 /usr/local/
$ echo 'export JAVA_HOME=/usr/local/jdk-11.0.18' >> ~/.profile
$ echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.profile
$ source ~/.profile

二、使用JShell交互式命令行

JShell是JDK 9新加入的交互式命令行工具,它可以帮助开发人员快速验证Java代码,无需写完整的应用程序或类文件。启动JShell并执行一些Java表达式:

$ jshell
| Welcome to JShell -- Version 11.0.18
| For an introduction type: /help intro
jshell> int i = 5
i ==> 5
jshell> String s = "Hello"
s ==> "Hello"
jshell> System.out.println(s + " World")
Hello World

三、新功能和改进

1. HTTP客户端API

JDK 11提供了一组新的HTTP客户端API,可以轻松处理各种数据格式的请求和响应,包括JSON、XML和文本。

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://www.example.com/api/data"))
        .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

2.局部变量类型推断

现在可以使用var关键字定义局部变量,编译器可以根据变量初始化的表达式推断变量类型。

var list = new ArrayList<String>();
list.add("Java");
list.add("Kotlin");
list.add("Scala");

3.支持Unicode 10.0.0

JDK 11支持Unicode 10.0.0,这意味着可以使用最新的Unicode字符,比如🐶和🐱。

System.out.println("\uD83E\uDD84"); // 🦄
System.out.println("\uD83E\uDD8A"); // 🐱

4.新垃圾收集器

JDK 11添加了一个新的垃圾收集器,称为ZGC,它可以执行几乎无暇地停顿长达几千兆字节的堆。

java -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xms10g -jar your_app.jar

5.多版本兼容性

Java 11引入的新工具jdeprscan可以扫描应用程序,给出关于其类、方法、字段和其他元素的兼容性警告。

jdeprscan your_app.jar

四、结论

本文详细介绍了JDK 11.0.18,提供了下载和安装指南,以及介绍了一些新功能和改进,包括HTTP客户端API、局部变量类型推断、Unicode 10.0.0、新垃圾收集器和多版本兼容性。这些新功能为Java开发人员提供了更好的工具和性能。