关于版本意识,尤其是初学者,很少有人关注(很多人三五年了,但还是不怎么关注)。为什么不关注?因为他们关注的是功能点或者知识点。后来渐渐地,一部分人在开发过程中会遇到各种问题,于是开始关注版本,而另一部分人则完全是为了应付面试。接下来说一下JDK版本和相关特性。JDK版本变更历史让我整体预览一下JDK版本变更:JDK版本发布时间1.01996-01-231.11997-02-191.21998-12-041.32000-05-081.4.02002-02-13JavaSE5.0/1.52004-09-30JavaSE6.0/1.62006-04JavaSE7.0/1.72011-07-28JavaSE8.02014-03-18JavaSE9.02017-09-21JavaSE10.02018-03-21JavaSE11.02018-09-25JavaSE12.02019-02-07JavaSE13.02019-09-26JavaSE14.02020-03-17JavaSE15.02020-09-15Java8于2014年3月14日发布,自Java8起,开发代码已被弃用,因此自Java8起无官方开发代码,Java8u201/202为最后一个免费的OracleJDK8版本,Oracle在2019-01-15停止了免费商业更新。很多人,你不是和JDK一样老吗?羡慕JDK版本增强JDK1.0:第一个版本,纯解释,使用插件JIT,性能差,运行速度慢。JDK1.1:JDBC(JavaDataBaseConnectivity),支持内部类、RMI、反射、JavaBean。JDK1.2:集合框架,JIT,JFC,Java插件,JDBC引入可滚动结果集,Applet加入声音支持。JDK1.3:JavaSoundAPI、jar文件索引和Java的各个方面都得到了优化和增强。JDK1.4:正则表达式、异常链、NIO、日志类、XML解析器、XLST转换器。JDK1.5:自动装箱、泛型、动态注释、枚举、可变长度参数和遍历循环。JDK1.6:提供动态语言支持,编译API和卫星HTTP服务器API,改进JVM锁,同步垃圾回收,类加载。JDK1.7:提供GI收集器,增强对非Java语言调用的支持(JSR-292,升级类加载架构)。JDK8:Lambda表达式、方法引用、默认方法、新工具、StreamAPI、DateTimeAPI、可选类、Nashorn、JavaScript引擎。JDK9:1.集合增强;2、私有接口方法;3.垃圾回收机制;4、I/O流程增强;5.JShell工具。JDK10:1.局部变量类型推断;2.线程本地握手;3.GC改进和内存管理。JDK11:1.字符串增强;2.HttClient接口;3.Lambda参数的局部变量语法;四、ZGCJDK12:1、开关表达式;2.雪兰多GC。JDK13:1.开关优化更新;2.文本块升级;3.重新实现旧的socketAPI;4.在核心库/java.util中:I18N;5.取消使用未使用的内存。JDK14:1、switch优化改成最终版;2.垃圾回收相关;3.instanceof的模式匹配(预览);4.删除安全库java.security.aclAPI;5.货币格式(优化)。JDK15:MarkRMIasDeprecate,以及HiddenClasses、PatternMatching、TextBlocks等特性。虽然JDK版本已经更新到15,但据统计,目前在开发和线上环境中使用最多的还是JDK8。本文转载自微信公众号《Java后端技术全栈》,可通过以下二维码关注。转载本文请联系Java后端技术全栈公众号。
