jdk4-14各个版本新特性

 JDK4 正则表达式,异常链,NIO,日志类,XML解析器,XLST转换器
 JDK5 自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环
 JDK6 提供动态语言支持、提供编译API和卫星HTTP服务器API,改进JVM的锁,同步垃圾回收,类加载
 JDK7 提供GI收集器、加强对非Java语言的调用支持(JSR-292,升级类加载架构
 JDK8 Lambda 表达式、方法引用、默认方法、新工具、Stream API、Date Time API 、Optional 类、Nashorn, JavaScript 引擎

JDK9目录结构,模块化系统,jshell,多版本兼容JAR,接口的私有方法,改进try-with-resourcs,改进砖石操作符,限制使用单独下划线标识符,String存储结构变更,快速创建只读结合,增强Stream API,改进Optional 类,多分辨率图像 API,全新 HTTP客服端API,智能JAVA 编译工具,统一JVM 日志系统,javadoc 的 HTML5 支持,java 动态编译

JDK10 局部变量类型推断,GC改进和内存管理,线程本地握手(JEP 312),备用内存设备上的堆分配(JEP 316),其他Unicode语言 - 标记扩展(JEP 314),基于Java的实验性JIT编译器,根证书(JEP 319),根证书颁发认证,将JDK生态整合单个存储库(JEP 296), 删除工具javah(JEP 313)

JDK11 增强局部变量类型推断var,增加一些实用的API,移除和废弃的内容

 移除项

1、移除了com.sun.awt.AWTUtilities

2、移除了sun.misc.Unsafe.defineClass,使用java.lang.invoke.MethodHandles.Lookup.defineClass来替代

3、移除了Thread.destroy()以及 Thread.stop(Throwable)方法

4、移除了sun.nio.ch.disableSystemWideOverlappingFileLockCheck、sun.locale.formatasdefault属性

5、移除了jdk.snmp模块

6、移除了javafx,openjdk估计是从java10版本就移除了,oracle jdk10还尚未移除javafx,而java11版本则oracle的jdk版本也移除了javafx

7、移除了Java Mission Control,从JDK中移除之后,需要自己单独下载

8、移除了这些Root Certificates :Baltimore Cybertrust Code Signing CA,SECOM ,AOL and Swisscom

     废弃项

1、-XX+AggressiveOpts选项

2、-XX:+UnlockCommercialFeatures

3、-XX:+LogCommercialFeatures选项也不再需要

HttpClient加强方法,Unicode 10 增加了8518个字符, 总计达到了136690个字符. 并且增加了4个脚本.同时还有56个新的emoji表情符号,在java11中移除了不太使用的JavaEE模块和CORBA技术,在java11中将java9标记废弃的Java EE及CORBA模块移除掉。废除Nashorn javascript引擎,在后续版本准备移除掉,有需要的可以考虑使用GraalVM。新的Epsilon垃圾收集器,ZGC,完全支持Linux容器(包括Docker),支持G1上的并行完全垃圾收集

JDK12 Microbenchmark Suite,Switch表达式(预览版),JVM常量API,JVM常量API,arm64在保留32位ARM端口和64位aarch64端口的同时,删除与端口相关的所有源,默认CDS档案,G1的可流动混合收集,从G1中立即返回未使用的已提交内存,核心库java.lang中支持Unicode11,核心库java.text支持压缩数字格式,安全库java.security,安全库javax.net.ssl,安全库/ org.ietf.jgss,

删除项

核心库/ java.util.jar中,删除java.util.ZipFile / Inflator / Deflator中的finalize方法 

    该finalize方法在java.util.ZipFile,java.util.Inflator和java.util.Deflator是在JDK9
弃用用于移除及其执行了更新,是一个空操作。该finalize在方法java.util.ZipFile,java.util.Inflator
以及java.util.Deflator在此版本中被删除。finalize应修改为执行清理而重写的子类,以使用备用清理机制并
删除写finalize方法。
    finalize方法,去除将暴露Object.finalize到的子类ZipFile,Deflater和Inflater。finalize由于
声明的异常发生更改,可能会在覆盖时发生编译错误。Object.finalize现在宣布投掷java.lang.Throwable。
以前,只有java.io.IOException宣布。

      核心库/ java.io,从FileInputStream和FileOutputStream中删除finalize方法 

    该finalize方法FileInputStream和FileOutputStream被弃用去除JDK 9.他们已经在此版本中被删除。
所述java.lang.ref.Cleaner,自JDK9的主要机制已被实施,以关闭文件描述符不再从可到达的FileInputStream和FileOutputStream。关闭文件的推荐方法是显式调用close或使用try-with-resources。

      工具/ javac的删除javac支持6 / 1.6源,目标和发布值 

为的javac的6/1.6的参数值的支持-source,-target以及--release标志已被删除。

JDK13 switch优化更新(预览版),文本块升级,动态CDS档案,取消使用未使用的内存,重新实现旧版套接字API  ,

核心库/ java.nio中添加了FileSystems.newFileSystem(Path,Map <String,?>)方法 

      添加了三种新方法java.nio.file.FileSystems,以便更轻松地使用将文件内容视为文件系统的文件系统提供程序。

核心库/ java.nio中新的java.nio.ByteBuffer批量获取/放置方法转移字节而不考虑缓冲区位置。

删除的部分功能:

    核心库/java.net中,不再支持Pre-JDK 1.4 SocketImpl实现java.net.SocketImpl此版本已删除对为
JavaSE1.3及更早版本编译的自定义实现的支持。此更改对SocketImpl为Java SE 1.4(2002年发布)或更新版本编译
的实现没有影响。
     核心库/java.lang中,删除运行时跟踪方法,过时的方法traceInstructions(boolean),并
traceMethodCalls(boolean)已经从删除java.lang.Runtime类。这些方法对许多版本都不起作用,它们
的预期功能由Java虚拟机工具接口(JVMTI)提供。

JDK14 全新的Switch表达式,http://openjdk.java.net上发布的JDK 14的一个JDK增强建议(JEP)中,提及将升级Java的映射字节缓冲区以支持非易失性内存。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值