跳至正文
Wener Notes

Java 9

约 2 分钟阅读

核心总结

  • 模块化 JDK 的大版本。核心是 JPMS、jlink、jshell、集合工厂、Flow、G1 默认、内部 API 封装和多版本 JAR。

升级关注

  • 模块系统会暴露 split package、非法反射访问和内部 API 依赖问题。
  • 使用 jlink 可显著缩小运行时镜像,但需要先梳理模块依赖。

示例

module-info.java

module-info.java
module com.example.app {
  requires java.net.http;
  exports com.example.app;
}
java
var names = java.util.List.of("a", "b", "c");
var map = java.util.Map.of("k", "v");
bash
javac --release 8 Hello.java
jlink --add-modules com.example.app --output runtime-image
jshell

JEPs

JEP状态分类标题中文描述
JEP 102正式库/APIProcess API Updates增强 Process API,可获取 PID、父子进程和进程信息。
JEP 110正式库/APIHTTP 2 Client孵化 HTTP/2 与 WebSocket 客户端,后续 Java 11 标准化。
JEP 158正式库/APIUnified JVM Logging统一 JVM 日志,使用 -Xlog。
JEP 193正式库/APIVariable HandlesVarHandle 提供比 Unsafe 更规范的变量和内存访问原语。
JEP 200正式库/APIThe Modular JDKJDK 自身模块化。
JEP 220正式库/APIModular Run-Time Images新的模块化运行时镜像布局,取消传统 rt.jar。
JEP 222正式库/APIjshell: The Java ShellJava REPL 工具。
JEP 223正式库/APINew Version-String Scheme新的版本字符串方案。
JEP 238正式库/APIMulti-Release JAR Files一个 JAR 内可放多个 Java 版本实现。
JEP 247正式库/APICompile for Older Platform Versionsjavac --release,用目标平台 API 编译,替代 source/target/bootclasspath 组合。
JEP 248正式GC/RuntimeMake G1 the Default Garbage CollectorG1 成为默认 GC。
JEP 254正式库/APICompact StringsString 内部用 byte 数组加编码标记,降低 Latin-1 文本内存占用。
JEP 260正式库/APIEncapsulate Most Internal APIs封装大部分 JDK 内部 API。
JEP 261正式库/APIModule SystemJPMS 模块系统。
JEP 266正式库/APIMore Concurrency UpdatesFlow Reactive Streams 接口、CompletableFuture 等增强。
JEP 269正式库/APIConvenience Factory Methods for CollectionsList.of、Set.of、Map.of 等不可变集合工厂。
JEP 282正式工具/平台jlink: The Java Linker按模块裁剪生成定制运行时镜像。
JEP 290正式库/APIFilter Incoming Serialization Data反序列化过滤器,降低反序列化攻击面。

References

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

  • Java 版本
    笔记 · Java 9

    自 Java 9 · 每 6 个月一个版本 · 每 2 年一个 LTS - 每 4 个版本 · Java 11 - Java 17 隔了 3 年, 之后为每隔两年 · Java JEP 与版本变化 · 参考 · Java version history

  • Java JEP 与版本变化
    笔记 · 9

    资料来源以 OpenJDK JDK Project 页面和 JEP 页面为主。Java 5–7 主要按 JSR/项目整理;JDK 8 起按代表性 JEP 整理;JDK 10 起列出该版本项目页 Features 中的全部 JEP。 · | 状态 | 含义 | 使用建议 |

参考资料

其他外链19 条
最近更新commit 25ad4d4编辑