目录
- 总览
- java9开始的新特性
- java10开始的新特性
- java11开始的新特性
- java14开始的新特性
- java17开始的新特性
总览
-
目前java 8和java11使用量是最大的,尽管现在17的正式版都出了
java_lts.png - kafka 3.0将弃用java8, 4.0将彻底移除
java9开始的新特性
- 更可靠的配置,通过制定明确的类的依赖关系代替以前那种易错的类路径(class-path)加载机制,即不同版本的jar包冲突,运行时类缺失
- 强大的封装,允许一个组件声明它的公有类型(public)中,哪些可以被其他组件访问,哪些不可以
-
从java9开始可以通过jar 命令可以让一个jar包包含多个jdk版本的源码。在其MANIFEST.MF文件中需要包含下面这个配置
一个jar包包含多个jdk版本.png -
集合工厂方法
集合工厂方法.png
java10开始的新特性
- var局部变量
java11开始的新特性
- var Lambda 参数
- 添加了一些字符串新方法
java14开始的新特性
- 打包工具
- switch表达式拓展
- 模式匹配:解决了还需强制类型转换的问题, 14变成了以下的形式,kid可以直接用,并且作用域只在If代码块
if (object instanceof Kid kid) {
// ...
}
java17开始的新特性
-
switch模式匹配
-
record类型: 具有隐式 getter, 构造函数, equals, hashCode
, toString方法的数据类 -
密封类: 一个类可以通过使用 Sealed 修饰符来密封 -允许它的声明。
在任何extends 和 implements 子句之后,permit子句指定允许/允许扩展密封类的类
密封类.png -
外部函数和内存 API(孵化器): 能够通过安全访问外部内存,API 使 Java 程序能够调用本地库和处理本地数据,而不用JNI
网友评论