JDK1-16版本迭代、新特性

jdk的版本迭代:jdk1.0(1991.04) - jdk1.16(2021.03)


内容总结于网络资源

版本介绍
Oak1991.04
jdk1.01995.05:
改名Java
1996.01:
新增技术特性:Applet、AWT
JVM改进:Sun Classic VM
jdk1.11997.02:
修正版本:1.1.0-1.1.8九个版本:JDK1.1.4-Sparkler(宝石)、JDK1.1.5-Pumpkin(南瓜)、JDK1.1.6-Abigail(阿比盖尔,女子名)、JDK1.1.7-Brutus(布鲁图,古罗马政治家个将军)、JDK1.1.8-Chelsea(切尔西,城市名)。
新增语法特性:内部类、反射
新增技术特性:JAR文件格式、JDBC、JavaBeans、RMI(Remote Method Invocation,远程方法调用,开发纯Java的网络分布式应用系统的核心解决方案之一)
jdk1.21998.12.04 JDK1.2 Playground(竞技场)
新增语法特性:添加strictfp(strict float point,精确浮点)关键字
新增技术特性:Collections集合类、EJB、Java Plug-in、Java IDL、Swing等
JVM改进:内置JIT(Just In Time)编译器
其他说明:Sun在JDK1.2中把Java技术体系拆分为3个方向:J2ME(Java 2 Platform, Micro Edition,面向手机等移动端开发版本) J2SE(Java 2 Platform, Standard Edition,面向桌面应用开发版本) J2EE(Java 2 Platform, Enterprise Edition,面向企业级开发版本)
JDK1.32000.05.08 JDK1.3 Kestrel(美洲红隼)
修正版本:JDK1.3.1 Ladybird(瓢虫)
新增技术特性:JNDI(Java 命名与目录接口)、提供了大量新的Java 2D API、JavaSound类库
JVM改进:自JDK1.3开始,HotSpot虚拟机成为默认虚拟机
JDK1.42002.02.13 JDK1.4 Merlin(灰背隼)
修正版本:2002.09.16 JDK1.4.1 Grasshopper(蚱蜢)、2003.06.26 JDK1.4.2 Mantis(螳螂)
新增技术特性:正则表达式、异常链、NIO、日志类、XML解析器、XSLT转换器等
其他说明: JDK1.4是Java真正走向成熟的一个版本,许多著名公司参与实现,目前许多主流应用(如Spring、Hibernate、Struts等)都可以直接运行在JDK1.4上。
jdk1.52004.09.30 JDK1.5 Tiger(老虎)
新增语法特性:自动装箱与拆箱、静态导入、泛型、动态注解、枚举、可变长参数、遍历(foreach)循环等
新增技术特性:java.util.concurrent并发包 JVM改进:改进了Java的内存模型(Java Memory Model, JMM)
其他说明: 从JDK1.5版本开始,只有程序员内部的开发版本号(Develper Version,如java -version的输出)中才继续沿用1.5、1.6、1.7的版本号, 而公开版本号(Product Version)则改为JDK5、JDK6、JDK7的命名方式。
jdk1.62006.12.11 JDK6 Mustang(野马)
新增技术特性:动态语言支持(通过内置Mozilla JavaScript Rhino引擎实现)、编译API、微型HTTP服务器等
JVM改进:锁与同步、垃圾收集、类加载等方面的算法都有很多改动
其他说明: 从JDK6开始结束J2EE、J2SE、J2ME的命名方式,启用了Java EE 6、Java SE 6、Java ME 6的命名方式。 2006年11月13日的JavaOne大会上,Sun宣布最终会把Java开源,在随后的一年多陆续在GPL v2协议下公开了JDK各个部分的源码,并建立了OpenJDK组织对这些源码进行独立管理。 JDK6后,由于代码复杂性的增加、JDK开源、开发JavaFX、经济危机及Sun收购案等原因,Sun在JDK发展以外耗费了很多资源,JDK的更新没有维持两年发布一个主版本的发展速度。 2009年4月20日,Oracle宣布正式以74亿美元的价格收购Sun公司,Java商标从此正式归Oracle所有(但Java语言本身不归属哪家公司所有,它由JCP组织进行管理,尽管JCP主要是由Sun或者是Oracle所领导的)。
jdk1.72011.07.28 JDK7
修正版本: 新增语法特性:二进制字面量、在数字字面量下使用下划线、swatch可以使用String类型、创建实例的类型推断、在try之后自动关闭资源(try-with-resources)等
新增技术特性:ClassLoader新增API、URLClassLoader新增API、Concurrent包的改进、更多新NIO2的API等
JVM改进:G1
jdk1.82014.03
Lambda表达式
方法引用
Stream API
接口默认方法、静态方法
Optional
新的时间API:LocalDate、LocalTime、LocalDateTime、Clock、Instant等
jdk1.92017.09
JCP执行委员会提出将Java的发布频率改为每六个月一次,新的发布周期严格遵循时间点,将在每年的3月份和9月份发布
最大的变化之一是引入了模块系统(Jigsaw 项目)。
HTTP 2 客户端:HTTP/2标准是HTTP协议的最新版本,新的 HTTPClient API 支持 WebSocket 和 HTTP2 流以及服务器推送特性。
改进的 Javadoc:Javadoc 现在支持在 API 文档中的进行搜索。另外,Javadoc 的输出现在符合兼容 HTML5 标准。
集合工厂方法:List,Set 和 Map 接口中,新的静态工厂方法可以创建这些集合的不可变实例。
私有接口方法:在接口中使用private私有方法。我们可以使用 private 访问修饰符在接口中编写私有方法。
改进的 Stream API:改进的 Stream API 添加了一些便利的方法,使流处理更容易,并使用收集器编写复杂的查询。
改进 try-with-resources:如果你已经有一个资源是 final 或等效于 final 变量,您可以在 try-with-resources 语句中使用该变量,而无需在 try-with-resources 语句中声明一个新变量。
改进的弃用注解 @Deprecated:注解 @Deprecated 可以标记 Java API 状态,可以表示被标记的 API 将会被移除,或者已经破坏。
改进 Optional 类:java.util.Optional 添加了很多新的有用方法,Optional 可以直接转为 stream。
响应式流(Reactive Streams) API: Java 9中引入了新的响应式流 API 来支持 Java 9 中的响应式编程。
jdk1.102018.03
局部变量类型推断(Local-Variable Type Inference):使用var关键字进行变量声明,可以进行变量类型的推断。
G1的并行Full GC(Parallel Full GC for G1):G1的并行完整垃圾回收,实现并行性来改善最坏情况下的延迟。
应用程序类数据共享(Application Class-Data Sharing):应用程序类数据 (AppCDS) 共享,通过跨进程共享通用类元数据来减少内存占用空间,和减少启动时间。
ThreadLocal握手机制(Thread-Local Handshakes):在不进入到全局 JVM 安全点 (Safepoint) 的情况下,对线程执行回调。优化可以只停止单个线程,而不是停全部线程或一个都不停。
jdk1.112018.09
可在生产环境中使用!这是自 Java 8 后的首个长期支持版本,将支持到2026年。
ZGC,可扩展的低延迟垃圾收集器(ZGC: A Scalable Low-Latency Garbage Collector):ZGC是一款号称可以保证每次GC的停顿时间不超过10MS的垃圾回收器,并且和当前的默认垃圾回收起G1相比,吞吐量下降不超过15%。
Epsilon:什么事也不做的垃圾回收器(Epsilon: A No-Op Garbage Collector):这是一款不做垃圾回收的垃圾回收器。这个垃圾回收器看起来并没什么用,主要可以用来进行性能测试、内存压力测试等,Epsilon GC可以作为度量其他垃圾回收器性能的对照组。
增强var用法(Local-Variable Syntax for Lambda Parameters):在Java 11中,var可以用来作为Lambda表达式的局部变量声明。
jdk1.122019.03
低暂停时间的GC(Shenandoah: A Low-Pause-Time Garbage Collector )(Experimental):新增Shenandoah 算法,通过与正在运行的 Java 线程同时进行 evacuation 工作来减少 GC 暂停时间。
Switch 表达式(Switch Expressions):扩展了 switch 语句,使其不仅可以作为语句(statement),还可以作为表达式(expression)
可中止的G1 Mixed GC(Abortable Mixed Collections for G1) G1及时返回未使用的已分配内存(Promptly Return Unused Committed Memory from G1):如果 G1Mixed GC 存在超出暂停目标的可能性,则使其可中止。
jdk1.132019.09
扩展应用程序类-数据共享(Dynamic CDS Archives):允许在 Java 应用程序执行结束时动态归档类。归档类将包括默认的基础层 CDS(class data-sharing)存档中不存在的所有已加载的应用程序类和库类。
增强 ZGC 以将未使用的堆内存返回给操作系统(ZGC: Uncommit Unused Memory):ZGC 可以将未使用的堆内存返回给操作系统
可在生产环境中使用的 switch 表达式(Switch Expressions):在switch块中引入了yield语句,用于返回值。
将文本块添加到 Java 语言(Text Blocks):引入多行字符串文字,在其中可以放置多行的字符串,不需要进行任何转义。
jdk 142020.03
instanceof模式匹配
switch表达式
记录类型(Record Type)的引入
文本块作为预览特性保留
打包工具 (Incubator)
jdk 152020.09
jdk 162021.03
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值