温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

历代JDK新特性是什么

发布时间:2021-12-17 13:51:10 来源:亿速云 阅读:156 作者:小新 栏目:大数据

这篇文章将为大家详细讲解有关历代JDK新特性是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

JVM发展史

一,历代JDK新特性介绍

1996年 SUN JDK 1.0 Classic VM

初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢。

1997年 JDK1.1 发布

AWT、内部类、JDBC、RMI、反射

1998年 JDK1.2 Solaris Exact VM

JIT 解释器混合
Accurate Memory Management 精确内存管理,数据类型敏感
提升的GC性能
JDK1.2开始 称为Java 2 J2SE J2EE J2ME 的出现
加入Swing Collections

2000年 JDK 1.3 Hotspot 作为默认虚拟机发布

加入JavaSound

2002年 JDK 1.4 Classic VM退出历史舞台

Assert 正则表达式 NIO IPV6 日志API 加密类库

2004年发布 JDK1.5 即 JDK5 、J2SE 5 、Java 5

自动装箱拆箱
泛型支持
元数据(注解)
Introspector(内省)
enum(枚举)
静态引入
可变长参数(Varargs)
foreach(高级虚幻)
JMM(内存模型)
concurrent(并发包)

2006年发布JDK1.6既JDK6

命名方式变更
脚本语言
编译API和微型HTTP服务器API
锁与同步
垃圾收集
类加载
JDBC 4.0(jdbc高级)
Java Compiler (Java™ 编程语言编译器的接口)
可插拔注解
Native PKI(公钥基础设)
Java GSS (通用安全服务)
Kerberos ( 一种安全认证的系统)
LDAP (LDAP )
Web Services (web服务即xml传输)

2011年 JDK7发布

switch语句块中允许以字符串作为分支条件
创建泛型对象时应用类型推断
try-with-resources(一个语句块中捕获多种异常)
null值得自动处理
数值类型可以用二进制字符串表示
引入Java NIO.2开发包
动态语言支持
安全的加减乘除
Map集合支持并发请求

2014年 JDK8发布

引入Lambda 表达式
管道和流
新的日期和时间 API(加强对日期与时间的处理)
默认的方法(接口可以编写默认的方法)
类型注解
Nashorn javascript引擎(允许java运行特定JavaScript代码)
Optional class (处理nullPointException)
并行累加器
并行操作
内存错误移除
TLS SNI 服务器名称标识(Server Name Identification)

2016年JDK9

模块化
接口支持编写私有方法
Javadoc改进(支持符合html5 标准输出)
Stream API 增强(简化调用、操作、提供常用便捷的方法)
image API增强(支持多分辨率解析)
多版本jar支持(在不同环境运行不同jar包)
改进弃用注解使用@Deprecated
内置轻量级json API
弃用Applet API
Deprecation的弃用

2018年JDK10

JEP286,var 局部变量类型推断。
JEP296,将原来用 Mercurial 管理的众多 JDK 仓库代码,合并到一个仓库中,简化开发和管理过程。
JEP304,统一的垃圾回收接口。
JEP307,G1 垃圾回收器的并行完整垃圾回收,实现并行性来改善最坏情况下的延迟。
JEP310,应用程序类数据 (AppCDS) 共享,通过跨进程共享通用类元数据来减少内存占用空间,和减少启动时间。
JEP312,ThreadLocal 握手交互。在不进入到全局 JVM 安全点 (Safepoint) 的情况下,对线程执行回调。优化可以只停止单个线程,而不是停全部线程或一个都不停。
JEP313,移除 JDK 中附带的 javah 工具。可以使用 javac -h 代替。
JEP314,使用附加的 Unicode 语言标记扩展。
JEP317,能将堆内存占用分配给用户指定的备用内存设备。
JEP317,使用 Graal 基于 Java 的编译器,可以预先把 Java 代码编译成本地代码来提升效能。
JEP318,在 OpenJDK 中提供一组默认的根证书颁发机构证书。开源目前 Oracle 提供的的 Java SE 的根证书,这样 OpenJDK 对开发人员使用起来更方便。
JEP322,基于时间定义的发布版本,即上述提到的发布周期。版本号为$FEATURE.$INTERIM.$UPDATE.$PATCH,分别是大版本,中间版本,升级包和补丁版本。

2018年JDK11

新特性及更新修改:
基于嵌套的访问控制
标准 HTTP Client 升级
Epsilon:低开销垃圾回收器
简化启动单个源代码文件的方法
用于 Lambda 参数的局部变量语法
低开销的 Heap Profiling
支持 TLS 1.3 协议
ZGC:可伸缩低延迟垃圾收集器
飞行记录器
动态类文件常量

2019年JDK12

Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) 低暂停时间的GC
Microbenchmark Suite 微基准测试套件
Switch Expressions (Preview) Switch表达式
JVM Constants API JVM常量API
One AArch74 Port, Not Two 只保留一个AArch74实现
Default CDS Archives 默认类数据共享归档文件
Abortable Mixed Collections for G1 可中止的G1 Mixed GC
Promptly Return Unused Committed Memory from G1 G1及时返回未使用的已分配内存

2019年JDK13

JEP 350,Dynamic CDS Archives
扩展应用程序类-数据共享,以允许在 Java 应用程序执行结束时动态归档类。归档类将包括默认的基础层 CDS(class data-sharing)存档中不存在的所有已加载的应用程序类和库类。

JEP 351,ZGC: Uncommit Unused Memory
增强 ZGC 以将未使用的堆内存返回给操作系统。

JEP 353,Reimplement the Legacy Socket API
使用易于维护和调试的更简单、更现代的实现替换 java.net.Socket 和java.net.ServerSocket API 使用的底层实现。

JEP 354,Switch Expressions (Preview)
可在生产环境中使用的 switch 表达式,JDK 13 中将带来一个 beta 版本实现。switch 表达式扩展了 switch 语句,使其不仅可以作为语句(statement),还可以作为表达式(expression),并且两种写法都可以使用传统的 switch 语法,或者使用简化的“case L ->”模式匹配语法作用于不同范围并控制执行流。这些更改将简化日常编码工作,并为 switch 中的模式匹配(JEP 305)做好准备。

JEP 355,Text Blocks (Preview)
将文本块添加到 Java 语言。文本块是一个多行字符串文字,它避免了对大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。

2020年发布JDK14

305:instanceof的模式匹配(预览)
343:包装工具(培养箱)
345:G1的NUMA感知内存分配
349:JFR事件流
352:非易失性映射字节缓冲区
358:有用的NullPointerExceptions
359:记录(预览)
361:开关表达式(标准)
362:弃用Solaris和SPARC端口
363:删除并发标记扫描(CMS)垃圾收集器
364:Mac OS上的ZGC你像
365:Windows上的ZGC
366:弃用ParallelScavenge + SerialOld GC组合
367:删除Pack200工具和API
368:文本块(第二预览)
370:外部存储器访问API(孵化器)


关于“历代JDK新特性是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节
推荐阅读:
  1. jdk1.8新特性
  2. JDK新特性

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jdk
AI