Java 11 部分新特性
JEP 320: Remove the Java EE and CORBA Modules(删除 Java EE 和 CORBA 模块)
Java EE和CORBA两个模块在JDK9中已经标记"deprecated",在JDK11中正式移除。JDK中deprecated的意思是在不建议使用,在未来的release版本会被删除。
动机
JavaEE由4部分组成:
- JAX-WS (Java API for XML-Based Web Services),
- JAXB (Java Architecture for XML Binding)
- JAF (the JavaBeans Activation Framework)
- Common Annotations.
但是这个特性和JavaSE关系不大。并且JavaEE被维护在Github(https://github.com/javaee)中,版本同步造成维护困难。最后,JavaEE可以单独引用,maven中心仓库也提供了JavaEE(http://mvnrepository.com/artifact/javax/javaee-api/8.0),所以没必要把JavaEE包含到JavaSE中。
至于CORBA,使用Java中的CORBA开发程序没有太大的兴趣。因此,在JavaEE就把CORBA标记为"Proposed Optional",这就表明将来可能会放弃对这些技术的必要支持。
JEP 321: HTTP Client (Standard)(标准HTTP客户端)
将JDK9引进并孵化的HTTP客户端API作为标准,即HTTP/2 Client。它定义了一个全新的实现了HTTP/2和WebSocket的HTTP客户端API,并且可以取代HttpURLConnection。
动机
已经存在的HttpURLConnection有如下问题:
- 在设计时考虑了多种协议,但是现在几乎所有协议现已不存在。
- API早于HTTP/1.1并且太抽象;
- 使用很不友好;
- 只能以阻塞模式工作;
- 非常难维护;
JEP 330: Launch Single-File Source-Code Programs(启动单一文件的源代码程序)
增强Java启动器支持运行单个Java源代码文件的程序。
动机
单文件程序是指整个程序只有一个源码文件,通常是早期学习Java阶段,或者写一个小型工具类。以HelloWorld.java为例,运行它之前需要先编译。我们希望Java启动器能直接运行这个源码级的程序:
java HelloWorld.java
等价于:
javac -d <memory> HelloWorld.java
java -cp <memory> helloWorld
java Factorial.java 3 4 5
等价于:
javac -d <memory> Factorial.java
java -cp <memory> Factorial 3 4 5
到JDK10为止,Java启动器能以三种方式运行:
- 启动一个class文件;
- 启动一个JAR中的main方法类;
- 启动一个模块中的main方法类;
JDK11再加一个,即第四种方式:启动一个源文件申明的类。
JEP 332: Transport Layer Security (TLS) 1.3(支持 TLS 1.3)
实现TLS协议1.3版本。(TLS允许客户端和服务端通过互联网以一种防止窃听,篡改以及消息伪造的方式进行通信)。
动机
TLS 1.3是TLS协议的重大改进,与以前的版本相比,它提供了显着的安全性和性能改进。其他供应商的几个早期实现已经可用。我们需要支持TLS 1.3以保持竞争力并与最新标准保持同步。这个特性的实现动机和Unicode 10一样,也是紧跟历史潮流。
相关文章
- [Java基础] java的守护线程与非守护线程
- Jmeter里的全能java测试sampler - Java request
- <转载>C#与JAVA的区别 http://www.cnblogs.com/Asa-Zhu/archive/2012/11/08/2761114.html
- java -version 问题 : C:ProgramDataOracleJavajavapath;
- java基础知识回顾之javaIO类---BufferedInputStream和BufferedOutputStream
- JAVA学习(五):Java面向对象编程基础
- Java实现 LeetCode 1013 将数组分成和相等的三个部分
- java实现数字的值返回
- java实现祖冲之割圆法
- Java实现第九届蓝桥杯星期一
- Java实现蓝桥杯正则切分
- 蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法)
- (转载)java多态(2)-------Java转型(向上或向下转型)
- java 11 Java Flight Recorder
- java 11 值得关注的新特性
- 【JAVA】java中split以"." 、""、“|”分隔字符串
- macos:安装java 17.0.6(android studio报错:Unable to locate a Java Runtime.)
- java面试准备之基础排序——冒泡与选择排序
- 【Java】MyBatis与Spring框架整合(二)
- java 11 完全支持Linux容器(包括Docker)
- java 11 标准Java异步HTTP客户端
- 【JAVA】MacBook安装Java环境及eclipse
- 【JAVA】Java循环语句中的continue跳转进入下一次循环是否判断循环条件
- [Linux] Install java and add JAVA_HOME, PATH
- Java知识回顾 (11) 异常处理
- 华为OD机试 - 识图谱新词挖掘(Java & JS & Python)
- Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
- 【java】Java生成微信小程序二维码
- Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法
- 【华为OD机试 2023】 删除重复数字后的最大数字(C++ Java JavaScript Python)
- java中的transient 详细总结Java中transient关键字 对象写出流ObjectOutputStream 对象写入流ObjectInputStream
- Java有用经验总结--Swing篇
- 17/11/24 05:08:44 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
- Java NIO 系列教程
- JAVA学习第十九课(java程序的异常处理 (二))
- java===java基础学习(11)---继承
- 【java】Java线程池实现原理及业务中的实践
- 【java】Java IO体系总览