mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-16 18:10:13 +08:00
[docs update] java 9新特性部分内容完善
This commit is contained in:
parent
ba61581310
commit
dbacbad556
@ -1,6 +1,6 @@
|
||||
> [JavaGuide 官方知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)来啦!!!如果你需要专属面试小册/一对一交流/简历修改/专属求职指南/学习打卡,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc) (一定要确定自己真的需要再加入,一定要看完详细介绍之后再加我)。
|
||||
|
||||
<div style="text-align:center">
|
||||
<div align="center">
|
||||
<p>
|
||||
<a href="https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc">
|
||||
<img src="./media/sponsor/xingqiu.png" style="margin: 0 auto; width: 850px;" />
|
||||
|
@ -34,10 +34,6 @@ export default defineThemeConfig({
|
||||
plugins: ["highlight", "math", "search", "notes", "zoom"],
|
||||
},
|
||||
},
|
||||
feed: {
|
||||
rss: true,
|
||||
json:true
|
||||
},
|
||||
// docsearch: {
|
||||
// appId: "",
|
||||
// apiKey: "",
|
||||
|
@ -9,6 +9,14 @@ tag:
|
||||
|
||||
你可以在 [Archived OpenJDK General-Availability Releases](http://jdk.java.net/archive/) 上下载自己需要的 JDK 版本!官方的新特性说明文档地址: https://openjdk.java.net/projects/jdk/ 。
|
||||
|
||||
**概览(精选了一部分)** :
|
||||
|
||||
- [JEP 222: Java 命令行工具](https://openjdk.java.net/jeps/222)
|
||||
- [JEP 261: 模块化系统](https://openjdk.java.net/jeps/261)
|
||||
- [JEP 248:G1 成为默认垃圾回收器](https://openjdk.java.net/jeps/248)
|
||||
- [JEP 193: 变量句柄](https://openjdk.java.net/jeps/193)
|
||||
- [JEP 254:字符串存储结构优化](https://openjdk.java.net/jeps/254)
|
||||
|
||||
## JShell
|
||||
|
||||
JShell 是 Java 9 新增的一个实用工具。为 Java 提供了类似于 Python 的实时命令行交互工具。
|
||||
@ -30,9 +38,9 @@ JShell 是 Java 9 新增的一个实用工具。为 Java 提供了类似于 Pyth
|
||||
3. JShell 支持独立的表达式比如普通的加法运算 `1 + 1`。
|
||||
4. ......
|
||||
|
||||
## Java 平台模块系统
|
||||
## 模块化系统
|
||||
|
||||
Java 平台模块系统是[Jigsaw Project](https://openjdk.java.net/projects/jigsaw/)的一部分,把模块化开发实践引入到了 Java 平台中,可以让我们的代码可重用性更好!
|
||||
模块系统是[Jigsaw Project](https://openjdk.java.net/projects/jigsaw/)的一部分,把模块化开发实践引入到了 Java 平台中,可以让我们的代码可重用性更好!
|
||||
|
||||
**什么是模块系统?** 官方的定义是:
|
||||
|
||||
@ -44,7 +52,7 @@ Java 平台模块系统是[Jigsaw Project](https://openjdk.java.net/projects/jig
|
||||
|
||||

|
||||
|
||||
在引入了模块系统之后,JDK 被重新组织成 94 个模块。Java 应用可以通过新增的 **[jlink](http://openjdk.java.net/jeps/282) 工具** (Java 的新命令行工具),创建出只包含所依赖的 JDK 模块的自定义运行时镜像。这样可以极大的减少 Java 运行时环境的大小。
|
||||
在引入了模块系统之后,JDK 被重新组织成 94 个模块。Java 应用可以通过新增的 **[jlink](http://openjdk.java.net/jeps/282) 工具** (Jlink 是随 Java 9 一起发布的新命令行工具。它允许开发人员为基于模块的 Java 应用程序创建自己的轻量级、定制的 JRE),创建出只包含所依赖的 JDK 模块的自定义运行时镜像。这样可以极大的减少 Java 运行时环境的大小。
|
||||
|
||||
我们可以通过 `exports` 关键词精准控制哪些类可以对外开放使用,哪些类只能内部使用。
|
||||
|
||||
@ -66,6 +74,13 @@ module my.module {
|
||||
- [《Java 9 Modules: part 1》](https://stacktraceguru.com/java9/module-introduction)
|
||||
- [[Java 9 揭秘(2. 模块化系统)](https://www.cnblogs.com/IcanFixIt/p/6947763.html)](http://www.cnblogs.com/IcanFixIt/p/6947763.html)
|
||||
|
||||
## G1 成为默认垃圾回收器
|
||||
|
||||
在 Java 8 的时候,默认垃圾回收器是 Parallel Scavenge(新生代)+Parallel Old(老年代)。到了 Java 9, CMS 垃圾回收器被废弃了,**G1(Garbage-First Garbage Collector)** 成为了默认垃圾回收器。
|
||||
|
||||
G1 还是在 Java 7 中被引入的,经过两个版本优异的表现成为成为默认垃圾回收器。
|
||||
|
||||
|
||||
## 快速创建不可变集合
|
||||
|
||||
增加了`List.of()`、`Set.of()`、`Map.of()` 和 `Map.ofEntries()`等工厂方法来创建不可变集合(有点参考 Guava 的味道):
|
||||
@ -238,6 +253,7 @@ System.out.println(currentProcess.info());
|
||||
|
||||
## 参考
|
||||
|
||||
- Java version history:https://en.wikipedia.org/wiki/Java_version_history
|
||||
- Release Notes for JDK 9 and JDK 9 Update Releases : https://www.oracle.com/java/technologies/javase/9-all-relnotes.html
|
||||
- 《深入剖析 Java 新特性》-极客时间 - JShell:怎么快速验证简单的小问题?
|
||||
- New Features in Java 9:https://www.baeldung.com/new-java-9
|
||||
|
Loading…
x
Reference in New Issue
Block a user