-- 全面了解JDK: 与JRE,JVM关系,JDK各版本名称,特性,发布时间及与spring等框架的对应(持续更新,建议收藏)
【官网】:无
应用场景
很多时候想知道jdk的各版本特性,名称及与spring等框架的对应关系,因此在此特意整理。基础资源
无
使用须知
很多java开发者需要对jdk有一个全面的了解才能解开迷惑,确定使用jdk哪一个版本,以及如何更好的运用。 我们需要了解的内容比如:JDK与JRE,JVM的关系,JDK各版本名称,特性,发布时间及对应Spring框架版本等等。 本文都讲进行介绍。
配置步骤
A)JVM,JRE,JDK之间的关系。
jvm(Java Virtual Machine) JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
jre (java runtime environment) 是java程序的运行环境。
jdk(java development kit)是java的开发工具包。
jvm,jre,jdk三者关系如图:
注1:图片来自 https://docs.oracle.com/javase/8/docs/
注2: 运行时使用jre而不使用jdk,一方面是减少硬盘空间的使用,另一方面在一定成都考虑安全性,防止jdk里的一些执行命令被恶意篡改或执行。
B)JDK各版本的名称及发布时间。
C)JDK各版本的特性。
注:Java 8是于2014年3月14号发布。从Java 8开始开发代号已经弃用,因此从Java 8之后已经没有官方的开发代号。
Java 8u201/202 是最后一个免费的 Oracle JDK 8 版本,Oracle于 2019-01-15 停止免费商用更新。
JDK1.4 正则表达式,异常链,NIO,日志类,XML解析器,XLST转换器
JDK1.5 自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环
JDK1.6 提供动态语言支持、提供编译API和卫星HTTP服务器API,改进JVM的锁,同步垃圾回收,类加载
JDK1.7 提供GI收集器、加强对非Java语言的调用支持(JSR-292,升级类加载架构
JDK8 Lambda 表达式、方法引用、默认方法、新工具、Stream API、Date Time API 、Optional 类、Nashorn, JavaScript 引擎
JDK9 1、集合加强;2、私有接口方法;3、垃圾收集机制;4、I/O流加强;5、JShell工具
JDK10 1、局部变量类型推断;2、线程本地握手;3、GC改进和内存管理;
JDK11 1、字符串加强;2、HttClient Api;3、用于 Lambda 参数的局部变量语法;4、ZGC
JDK12 1、Switch Expressions;2、Shenandoah GC;
JDK13 1、switch优化更新;2、文本块升级;3、重新实现旧版套接字API;4、核心库/java.util中:I18N;5、取消使用未使用的内存
JDK14 1、switch优化变更为最终版;2、垃圾回收相关;3、instanceof的模式匹配(预览版);4、删除了安全库java.security.acl API;5、货币格式(优化)
JDK15
D)一些java框架与JDK之间的关系。
D1)SpringFramework与JDK之间的对应关系.
常见问题
快速入门
无