File tree Expand file tree Collapse file tree 7 files changed +11
-11
lines changed
Expand file tree Collapse file tree 7 files changed +11
-11
lines changed Original file line number Diff line number Diff line change @@ -58,7 +58,7 @@ var 并不会改变 Java 是一门静态类型语言的事实,编译器负责
5858
5959## G1 并行 Full GC
6060
61- 从 Java9 开始 G1 就成了默认的垃圾回收器,G1 是以一种低延时的垃圾回收器来设计的,旨在避免进行 Full GC,但是 Java9 的 G1 的 FullGC 依然是使用单线程去完成标记清除算法,这可能会导致垃圾回收期在无法回收内存的时候触发 Full GC。
61+ 从 Java9 开始 G1 就成了默认的垃圾回收器,G1 是以一种低延时的垃圾回收器来设计的,旨在避免进行 Full GC,但是 Java9 的 G1 的 FullGC 依然是使用单线程去完成标记清除算法,这可能会导致垃圾回收器在无法回收内存的时候触发 Full GC。
6262
6363为了最大限度地减少 Full GC 造成的应用停顿的影响,从 Java10 开始,G1 的 FullGC 改为并行的标记清除算法,同时会使用与年轻代回收和混合回收相同的并行工作线程数量,从而减少了 Full GC 的发生,以带来更好的性能提升、更大的吞吐量。
6464
Original file line number Diff line number Diff line change 2727
2828Java 11 对 Java 9 中引入并在 Java 10 中进行了更新的 Http Client API 进行了标准化,在前两个版本中进行孵化的同时,Http Client 几乎被完全重写,并且现在完全支持异步非阻塞。
2929
30- 并且,Java 11 中,Http Client 的包名由 ` jdk.incubator.http ` 改为` java.net.http ` ,该 API 通过 ` CompleteableFuture ` 提供非阻塞请求和响应语义。使用起来也很简单,如下:
30+ 并且,Java 11 中,Http Client 的包名由 ` jdk.incubator.http ` 改为` java.net.http ` ,该 API 通过 ` CompletableFuture ` 提供非阻塞请求和响应语义。使用起来也很简单,如下:
3131
3232``` java
3333var request = HttpRequest . newBuilder()
@@ -118,7 +118,7 @@ Consumer<String> consumer = (String i) -> System.out.println(i);
118118
119119这意味着我们可以运行单一文件的 Java 源代码。此功能允许使用 Java 解释器直接执行 Java 源代码。源代码在内存中编译,然后由解释器执行,不需要在磁盘上生成 ` .class ` 文件了。唯一的约束在于所有相关的类必须定义在同一个 Java 文件中。
120120
121- 对于 Java 初学者并希望尝试简单程序的人特别有用,并且能和 jshell 一起使用。一定能程度上增强了使用 Java 来写脚本程序的能力。
121+ 对于 Java 初学者并希望尝试简单程序的人特别有用,并且能和 jshell 一起使用,一定程度上增强了使用 Java 来写脚本程序的能力。
122122
123123## 其他新特性
124124
Original file line number Diff line number Diff line change @@ -127,7 +127,7 @@ switch (day) {
127127
128128` instanceof ` 主要在类型强转前探测对象的具体类型。
129129
130- 之前的版本中,我们需要显示地对对象进行类型转换 。
130+ 之前的版本中,我们需要显式地对对象进行类型转换 。
131131
132132``` java
133133Object obj = " 我是字符串" ;
Original file line number Diff line number Diff line change @@ -34,7 +34,7 @@ Java 17 将是继 Java 8 以来最重要的长期支持(LTS)版本,是 Jav
3434- [ JEP 410: Remove the Experimental AOT and JIT Compiler(删除实验性的 AOT 和 JIT 编译器)] ( https://openjdk.java.net/jeps/410 )
3535- [ JEP 411: Deprecate the Security Manager for Removal(弃用安全管理器以进行删除)] ( https://openjdk.java.net/jeps/411 )
3636- [ JEP 412: Foreign Function & Memory API (外部函数和内存 API)] ( https://openjdk.java.net/jeps/412 ) (孵化)
37- - [ JEP 414: Vector (向量) API] ( https://openjdk.java.net/jeps/417 ) (第二次孵化)
37+ - [ JEP 414: Vector (向量) API] ( https://openjdk.java.net/jeps/414 ) (第二次孵化)
3838- [ JEP 415: Context-Specific Deserialization Filters] ( https://openjdk.java.net/jeps/415 )
3939
4040这里只对 356、398、413、406、407、409、410、411、412、414 这几个我觉得比较重要的新特性进行详细介绍。
Original file line number Diff line number Diff line change @@ -81,7 +81,7 @@ URL: http://127.0.0.1:8000/
8181
8282## JEP 416:使用方法句柄重新实现反射核心
8383
84- Java 18 改进了 ` java.lang.reflect.Method ` 、` Constructor ` 的实现逻辑,使之性能更好,速度更快。这项改动不会改动相关 API ,这意味着开发中不需要改动反射相关代码,就可以体验到性能更好反射 。
84+ Java 18 改进了 ` java.lang.reflect.Method ` 、` Constructor ` 的实现逻辑,使之性能更好,速度更快。这项改动不会改动相关 API ,这意味着开发中不需要改动反射相关代码,就可以体验到性能更好的反射 。
8585
8686OpenJDK 官方给出了新老实现的反射性能基准测试结果。
8787
Original file line number Diff line number Diff line change @@ -24,7 +24,7 @@ JDK 20 只有 7 个新特性:
2424- [ JEP 434: Foreign Function & Memory API(外部函数和内存 API)] ( https://openjdk.org/jeps/434 ) (第二次预览)
2525- [ JEP 436: Virtual Threads(虚拟线程)] ( https://openjdk.org/jeps/436 ) (第二次预览)
2626- [ JEP 437: Structured Concurrency(结构化并发)] ( https://openjdk.org/jeps/437 ) (第二次孵化)
27- - [ JEP 432 :向量 API(] ( https://openjdk.org/jeps/438 ) 第五次孵化)
27+ - [ JEP 438 :向量 API(第五次孵化) ] ( https://openjdk.org/jeps/438 )
2828
2929## JEP 429:作用域值(第一次孵化)
3030
@@ -103,7 +103,7 @@ switch (shape) {
103103 break ;
104104
105105 case Rectangle r:
106- System . out. println(" The shape is Rectangle with area: + " + r. length() * r. width());
106+ System . out. println(" The shape is Rectangle with area: " + r. length() * r. width());
107107 break ;
108108
109109 default :
@@ -127,7 +127,7 @@ switch(shape) {
127127 break ;
128128
129129 case Rectangle(double length, double width):
130- System . out. println(" The shape is Rectangle with area: + " + length * width);
130+ System . out. println(" The shape is Rectangle with area: " + length * width);
131131 break ;
132132
133133 default :
@@ -136,7 +136,7 @@ switch(shape) {
136136}
137137```
138138
139- 记录模式可以避免不必要的转换,使得代码更建简洁易读 。而且,用了记录模式后不必再担心 ` null ` 或者 ` NullPointerException ` ,代码更安全可靠。
139+ 记录模式可以避免不必要的转换,使得代码更简洁易读 。而且,用了记录模式后不必再担心 ` null ` 或者 ` NullPointerException ` ,代码更安全可靠。
140140
141141记录模式在 Java 19 进行了第一次预览, 由 [ JEP 405] ( https://openjdk.org/jeps/405 ) 提出。JDK 20 中是第二次预览,由 [ JEP 432] ( https://openjdk.org/jeps/432 ) 提出。这次的改进包括:
142142
Original file line number Diff line number Diff line change 1212
1313JDK 25 于 2025 年 9 月 16 日 发布,这是一个非常重要的版本,里程碑式。
1414
15- JDK 25 是 LTS(长期支持版),至此为止,目前有 JDK8、JDK11、JDK17、JDK21 和 JDK 25 这四个长期支持版了 。
15+ JDK 25 是 LTS(长期支持版),至此为止,目前有 JDK8、JDK11、JDK17、JDK21 和 JDK 25 这五个长期支持版了 。
1616
1717JDK 21 共有 18 个新特性,这篇文章会挑选其中较为重要的一些新特性进行详细介绍:
1818
You can’t perform that action at this time.
0 commit comments