java版本更新及历史
2018-09-27 18:42:20 3 举报
AI智能生成
java各个版本的更新及更新的特性
作者其他创作
大纲/内容
jdk11 2018-7-17
jdk10 2018-7-17
新增功能
适用于G1的JEP 307平行全GC
通过使完整的GC并行来改善G1最坏情况延迟。G1垃圾收集器旨在避免完整集合,但是当并发集合无法足够快地回收内存时,将发生后退完整GC。用于G1的完整GC的旧实现使用单线程标记扫描紧凑算法。使用JEP 307,完整的GC已经并行化,现在使用与年轻和混合集合相同数量的并行工作线程。
开箱即用的JMX代理的哈希密码
jmxremote.password现在,JMX代理正在使用SHA3-512哈希覆盖文件中存在的明文密码。
用于禁用JRE最后使用情况跟踪的系统属性
jdk.disableLastUsageTracking引入了一个新的系统属性来禁用正在运行的VM的JRE最后使用情况跟踪。可以使用-Djdk.disableLastUsageTracking=true或中的任何一个在命令行中设置此属性 -Djdk.disableLastUsageTracking。使用此系统属性集,无论设置的com.oracle.usagetracker.track.last.usage属性值如何,都将禁用JRE上次使用跟踪usagetracker.properties。
用于创建不可修改集合的API
添加了几个新API,便于创建不可修改的集合。的List.copyOf,Set.copyOf和Map.copyOf方法从现有情况下,新的集合实例。新的方法toUnmodifiableList,toUnmodifiableSet以及toUnmodifiableMap已被添加到Collectors在流包类。这些允许将Stream的元素收集到不可修改的集合中。
Optional.orElseThrow()方法
该类中orElseThrow添加了一种新方法Optional。它是现有get方法的同义词,现在是现有方法的首选替代方案。
JEP 319根证书
在JDK中提供一组默认的根证书颁发机构(CA)证书。
TLS会话哈希和扩展主密钥扩展支持
已在JDK JSSE提供程序中为TLS会话哈希和扩展主密钥扩展(RFC 7627)添加了支持。请注意,通常,如果未启用端点标识并且先前的握手是会话恢复缩写的初始握手,则限制服务器证书更改,除非两个证书表示的身份可视为相同。但是,如果启用或协商扩展,则不需要服务器证书更改限制,因此将被丢弃。
用于增强环路的字节码生成
字节码生成已得到改进,增强了for循环,为它们提供了翻译方法的改进。
javadoc支持多个样式表
新的javadoc命令行选项--add-stylesheet已添加到javadoc工具中。
覆盖不改变规范的方法
新的选项--overridden-methods=值已添加到javadoc工具中。许多类在不更改规范的情况下覆盖继承的方法。该--overridden-methods=值选项可用于组这些方法与其它的继承方法,而不是用在类中声明的其它方法记录他们的细节。
API描述摘要的注释标记
添加了新的内联标记,{@summary ...}以明确指定用作API描述摘要的文本。默认情况下,API描述的摘要是从第一句推断出来的。这是通过使用简单的算法或java.text.BreakIterator。然而,这种启发式方法并不总是正确的,并且可能导致错误地确定第一句的结尾。新标记可以显式设置API摘要文本而不是推断。
增强的KeyStore机制
jceks.key.serialFilter引入了一个名为的新安全属性。如果配置了此过滤器,则JCEKS KeyStore会在对SecretKeyEntry中存储的加密Key对象进行反序列化时使用它。如果未配置或过滤结果为UNDECIDED(例如,没有模式匹配),则查询配置的过滤器jdk.serialFilter。
使用EC密钥签名的XML签名小于224位禁用
XML Signature实现的安全验证模式已得到增强,默认情况下限制EC密钥小于224位。通过org.jcp.xml.dsig.secureValidation使用javax.xml.crypto.XMLCryptoContext.setProperty()方法将属性设置为true ,或通过使用SecurityManager运行代码,可以启用安全验证模式。
禁用3DES密码套件
为了提高SSL / TLS连接的强度,已通过jdk.tls.disabledAlgorithms安全属性在JDK中的SSL / TLS连接中禁用3DES密码套件。
局部变量类型推断
增强Java语言以使用初始值设定项将类型推断扩展为局部变量的声明。
将JDK林合并到单个存储库
将JDK林的众多存储库组合到单个存储库中,以简化和简化开发。
垃圾收集器接口
通过引入干净的垃圾收集器(GC)接口,改进不同垃圾收集器的源代码隔离。
并行完整GC:应用程序类 - 数据共享
要改善启动和占用空间,请扩展现有的类 - 数据共享(“CDS”)功能,以允许将应用程序类放在共享存档中。
线程局部握手
介绍一种在线程上执行回调而不执行全局VM安全点的方法。让它既可能又便宜地停止单个线程而不仅仅是所有线程或没有线程。
移除本机头生成工具(javah)
javah从JDK中删除该工具。
附加的Unicode语言 - 标记扩展
增强java.util.Locale和相关API以实现BCP 47语言标记的其他Unicode扩展。
替代存储器设备上的堆分配
启用HotSpot VM以在另一个内存设备上分配Java对象堆,例如用户指定的NV-DIMM。
基于Java的实验JIT编译器
使基于Java的JIT编译器Graal可用作Linux / x64平台上的实验性JIT编译器。
基于时间的发布版本控制
针对当前和未来基于时间的发布模型,修订Java SE平台和JDK的版本字符串方案以及相关的版本控制信息。
JDK9 2017-9-22
模块系统
分支主题
REPL (JShell)
意为交互式的编程环境。
HTTP 2 客户端
HTTP/2标准是HTTP协议的最新版本,新的 HTTPClient API 支持 WebSocket 和 HTTP2 流以及服务器推送特性。
改进的 Javadoc
Java 9 的 javadoc 的输出现在符合兼容 HTML5 标准。
多版本兼容 JAR 包
多版本兼容 JAR 功能能让你创建仅在特定版本的 Java 环境中运行库程序时选择使用的 class 版本
集合工厂方法
Java 9 List,Set 和 Map 接口中,新的静态工厂方法可以创建这些集合的不可变实例。
私有接口方法
在 Java 8之前,接口可以有常量变量和抽象方法。
进程 API
Java 9 向 Process API 添加了一个名为 ProcessHandle 的接口来增强 java.lang.Process 类。
改进的 Stream API
Java 9 为 Stream 新增了几个方法:dropWhile、takeWhile、ofNullable,为 iterate 方法新增了一个重载方法。
改进 try-with-resources
改进的弃用注解 @Deprecated
Java 9 中注解增加了两个新元素:since 和 forRemoval。
改进钻石操作符(Diamond Operator)
在 java 9 中, 它可以与匿名的内部类一起使用,从而提高代码的可读性。
改进 Optional 类
stream()
ifPresentOrElse()
or()
多分辨率图像 API
Java 9 定义多分辨率图像 API,开发者可以很容易的操作和展示不同分辨率的图像了。
改进的 CompletableFuture API
Java 9 对 CompletableFuture 做了改进:
支持 delays 和 timeouts
提升了对子类化的支持
新的工厂方法
轻量级的 JSON API
内置了一个轻量级的JSON API
响应式流(Reactive Streams) API
Java 9中引入了新的响应式流 API 来支持 Java 9 中的响应式编程。
JDK8 2014-3-18
接口的默认方法
Lambda 表达式
函数式接口
多重注解
Stream API(java.util.stream)
Date Time API
java.time.LocalDate
java.time.LocalTime
java.time.LocalDateTime
TLS SNI
Optional
Nashorn JavaScript引擎
Base64
java.util.Base64
并行数组
并发性
JDK7 2011-7-28
在此期间Oracle收购Sun,很多1.7的计划没能完成,被推迟到1.8
switch语句块中允许以字符串作为分支条件
创建泛型对象时应用类型推断
try-with-resources(一个语句块中捕获多种异常)
null值得自动处理
数值类型可以用二进制字符串表示
引入Java NIO.2开发包
动态语言支持
安全的加减乘除
Map集合支持并发请求
JDK6 2006-12-11
命名方式变更
脚本语言
编译API和微型HTTP服务器API
锁与同步
垃圾收集
类加载
JDBC 4.0
Java Compiler
可插拔注解
Native PKI(Public Key Infrastructure)
Java GSS
Kerberos
LDAP
Web Services
JDK 1.5 2004-9-30
自动装箱拆箱
泛型
元数据
Introspector
enum
静态引入
可变长参数(Varargs)
foreach
JMM
concurrent
java版本更新及历史
背景
1991年1991年4月,由James Gosling博士领导的绿色计划(Green Project)开始启动
JDK1.0 1996-1-23
Sun Classic VM
Applet
AWT
JDK1.1 1997-2-19
JAR
JDBC(Java DataBase Connectivity)
JavaBeans
RMI
Inner Class
Reflection
JDK1.2 1998-12-4
J2SE
J2EE
J2ME
JIT
JFC
Java Plug-In
EJB
Java IDL
Collections
字符串常量做内存映射
对打包的Java文件进行数字签名
控制授权访问系统资源的策略工具
在Applet中添加声音支持
JDK1.3 2000-5-8
数学运算
Timer API
Java Sound API
CORBA IIOP实现RMI的通信协议
Java 2D新特性
jar文件索引
JDK 1.4 2002-2-13
正则表达式
异常链
NIO
Logging
XML解析器
XSLT转换器
XML处理
Java打印服务
Java Web Start
JDBC 3.0
断言
Preferences
IPV6
Imgae I/O
0 条评论
回复 删除
下一页