Java-Web学习-Java基础-Java 11特性(更加局部)

Java 11

Java11中针对HTTP Client有大的升级改动,本着该系列博客是面向Java Web编程者的,我觉得需要来介绍一下其标准 HTTP Client的升级,顺便介绍一下其他的新特性。

本文为Java 11 新特性介绍的学习总结

HTTP Client Update

HTTP Client在Java 9中引入并进行不断的升级,终于在Java 11中完成了标准化。现在的HTTP Client完全支持异步非阻塞

新版的HTTP Client包名改为java.net.http,并提供了对HTTP/2等业界前沿标准的支持(Goodbye,HttpURLConnection!),并在这种支持中广泛使用了Java 9中引入的Flow API,体现了响应式编程的思想,提高了HTTP标准类库的拓展性。

HttpClient client = HttpClient.newBuilder()
      .version(Version.HTTP_2)
      .followRedirects(Redirect.SAME_PROTOCOL)
      .proxy(ProxySelector.of(new InetSocketAddress("www-proxy.com", 8080)))
      .authenticator(Authenticator.getDefault())
      .build();
HttpResponse<String> response = client.send(request, BodyHandlers.ofString());

Advanced Java launcher

Java 11中的Java启动器能够支持运行单一文件的Java源代码,源代码会直接在内存中编译,然后在解释器中执行,但是所有的类需要在一个文件中定义

Java 10中就支持启动*.class文件、*.jar中的主类、模块主类,而Java 11支持直接指定文件中的类。如果HelloWorld.java中包含一个hello.World类,以下命令将启动该类:

javac HellowWorld.java
java -cp . hello.World 

其同于:

java HelloWorld.java
posted @ 2021-05-19 09:46  neumy  阅读(69)  评论(0编辑  收藏  举报