历代JDK新特性,从JDK1.0到现在的JDK14,不容错过的干货!

文章目录

  • JVM发展史javascript

  • 一,历代JDK新特性介绍html

    • 1996年 SUN JDK 1.0 Classic VMhtml5

    • 1997年 JDK1.1 发布java

    • 1998年 JDK1.2 Solaris Exact VMweb

    • 2000年 JDK 1.3 Hotspot 做为默认虚拟机发布正则表达式

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

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

    • 2006年发布JDK1.6既JDK6json

    • 2011年 JDK7发布安全

    • 2014年 JDK8发布

    • 2016年JDK9

    • 2018年JDK10

    • 2018年JDK11

    • 2019年JDK12

    • 2019年JDK13

    • 2020年发布JDK14



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 AArch64 Port, Not Two 只保留一个AArch64实现
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(孵化器)


I do not know where to go,

but I have been on the road. 


我不知道将去何方,但我已在路上


点亮 ,告诉你们你也在看

本文分享自微信公众号 - JAVA开发者课堂(leechence)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索