Skip to content

Commit 7d311a5

Browse files
committed
docs:新增 java26 新特性
1 parent 6798a05 commit 7d311a5

File tree

9 files changed

+349
-16
lines changed

9 files changed

+349
-16
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,8 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8](https://docs.oracle.
337337

338338
## 分布式
339339

340+
- [⭐分布式高频面试题](https://interview.javaguide.cn/distributed-system/distributed-system.html)
341+
340342
### 理论&算法&协议
341343

342344
- [CAP 理论和 BASE 理论解读](https://javaguide.cn/distributed-system/protocol/cap-and-base-theorem.html)

docs/.vuepress/sidebar/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,10 @@ export default sidebar({
462462
prefix: "distributed-system/",
463463
collapsible: true,
464464
children: [
465+
{
466+
text: "⭐分布式高频面试题",
467+
link: "https://interview.javaguide.cn/distributed-system/distributed-system.html",
468+
},
465469
{
466470
text: "理论&算法&协议",
467471
icon: ICONS.ALGORITHM,

docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ footer: |-
4646
- **Java 系列**[Java 学习路线 (最新版,4w + 字)](https://javaguide.cn/interview-preparation/java-roadmap.html)[Java 基础常见面试题总结](https://javaguide.cn/java/basis/java-basic-questions-01.html)[Java 集合常见面试题总结](https://javaguide.cn/java/collection/java-collection-questions-01.html)[JVM 常见面试题总结](https://interview.javaguide.cn/java/java-jvm.html)
4747
- **计算机基础**[计算机网络常见面试题总结](https://javaguide.cn/cs-basics/network/other-network-questions.html)[操作系统常见面试题总结](https://javaguide.cn/cs-basics/operating-system/operating-system-basic-questions-01.html)
4848
- **数据库系列**[MySQL 常见面试题总结](https://javaguide.cn/database/mysql/mysql-questions-01.html)[Redis 常见面试题总结](https://javaguide.cn/database/redis/redis-questions-01.html)
49-
- **分布式系列**[分布式 ID 介绍 & 实现方案总结](https://javaguide.cn/distributed-system/distributed-id.html)[分布式锁常见实现方案总结](https://javaguide.cn/distributed-system/distributed-lock-implementations.html)
49+
- **分布式系列**[分布式高频面试题总结](https://interview.javaguide.cn/distributed-system/distributed-system.html)
5050

5151
## 🚀 PDF 版本 & 面试交流群
5252

docs/database/mysql/mysql-index-invalidation.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,10 @@ head:
3232
- **范围查询的中断效应**:在联合索引中,如果某个字段使用了范围查询(例如 >、<、BETWEEN、前缀匹配 LIKE "abc%"),该字段本身以及其之前的列可以正常匹配并用于索引的精确定位,但该字段之后的列将无法利用
3333
索引进行快速定位(即无法使用 ref 类型的二分查找)。这是因为在 B+Tree 索引结构中,只有当前导列完全相等时,后续列才是有序的。一旦前导列变成一个范围,后续列在整个扫描区间内就呈现相对无序状态,从而中断了精准定位能力。不过,在 MySQL 5.6 及以上版本中,这些后续列并未完全失效,而是降级为使用**索引下推(Index Condition Pushdown, ICP)机制**,在范围扫描的过程中直接进行条件过滤,以此来减少回表次数。
3434
- **索引跳跃扫描 (ISS)**:MySQL 8.0.13 引入了**索引跳跃扫描(Index Skip Scan)**,允许在缺失最左前缀时,通过枚举前导列的所有 Distinct 值来跳跃扫描后续索引树。
35-
3635
- **版本避坑指南**:在 **MySQL 8.0.31** 中,ISS 存在严重 Bug([[Bug #109145]](https://bugs.mysql.com/bug.php?id=109145)),在跨 Range 读取时未清理陈旧的边界值,会导致查询直接**丢失数据**
3736
- **落地建议**:ISS 在前导列基数(Cardinality)极低(如性别、状态枚举)时性能最优,因为优化器需要枚举前导列的所有 distinct 值逐一跳跃扫描——distinct 值越少,跳跃次数越少。但"基数低"本身并非官方限制条件,优化器会综合评估成本决定是否触发 ISS。在生产环境中,**严禁依赖 ISS 来弥补糟糕的索引设计**,必须通过调整联合索引顺序或补齐前导列条件来满足最左前缀。
3837

39-
**Index Skip Scan 失败路径图:**
38+
**Index Skip Scan 失败路径图:**
4039

4140
```mermaid
4241
sequenceDiagram

docs/database/mysql/mysql-questions-01.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ MySQL 索引相关的问题比较多,也非常重要,更详细的介绍可
450450

451451
### 为什么 InnoDB 没有使用哈希作为索引的数据结构?
452452

453-
> 我发现很多求职者甚至是面试官对这个问题都有误解,他们相当然的认为 MySQL 底层并没有使用哈希或者 B 树作为索引的数据结构。
453+
> 我发现很多求职者甚至是面试官对这个问题都有误解,他们想当然的认为 MySQL 底层并没有使用哈希或者 B 树作为索引的数据结构。
454454
>
455455
> 实际上,不论是提问还是回答这个问题都要区分好存储引擎。像 MEMORY 引擎就同时支持哈希和 B 树。
456456

docs/home.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,8 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8](https://docs.oracle.
340340

341341
## 分布式
342342

343+
- [⭐分布式高频面试题](https://interview.javaguide.cn/distributed-system/distributed-system.html)
344+
343345
### 理论&算法&协议
344346

345347
- [CAP 理论和 BASE 理论解读](./distributed-system/protocol/cap-and-base-theorem.md)

docs/java/new-features/java25.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ JDK 25 共有 18 个新特性,这篇文章会挑选其中较为重要的一些
3030

3131
![](https://oss.javaguide.cn/github/javaguide/java/new-features/jdk8~jdk24.png)
3232

33-
## JEP 506: 作用域值
33+
## JDK 25
34+
35+
### JEP 506: 作用域值
3436

3537
作用域值(Scoped Values)可以在线程内和线程间共享不可变的数据,优于线程局部变量 `ThreadLocal` ,尤其是在使用大量虚拟线程时。
3638

@@ -47,7 +49,7 @@ ScopedValue.where(V, <value>)
4749

4850
作用域值通过其“写入时复制”(copy-on-write)的特性,保证了数据在线程间的隔离与安全,同时性能极高,占用内存也极低。这个特性将成为未来 Java 并发编程的标准实践。
4951

50-
## JEP 512: 紧凑源文件与实例主方法
52+
### JEP 512: 紧凑源文件与实例主方法
5153

5254
该特性第一次预览是由 [JEP 445](https://openjdk.org/jeps/445 "JEP 445") (JDK 21 )提出,随后经过了 JDK 22 、JDK 23 和 JDK 24 的改进和完善,最终在 JDK 25 顺利转正。
5355

@@ -71,7 +73,7 @@ void main() {
7173

7274
这是为了降低 Java 的学习门槛和提升编写小型程序、脚本的效率而迈出的一大步。初学者不再需要理解 `public static void main(String[] args)` 这一长串复杂的声明。对于快速原型验证和脚本编写,这也使得 Java 成为一个更有吸引力的选择。
7375

74-
## JEP 519: 紧凑对象头
76+
### JEP 519: 紧凑对象头
7577

7678
该特性第一次预览是由 [JEP 450](https://openjdk.org/jeps/450 "JEP 450") (JDK 24 )提出,JDK 25 就顺利转正了。
7779

@@ -83,7 +85,7 @@ void main() {
8385
`$ java -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders ...`
8486
- JDK 25 之后仅需 `-XX:+UseCompactObjectHeaders` 即可启用。
8587

86-
## JEP 521: 分代 Shenandoah GC
88+
### JEP 521: 分代 Shenandoah GC
8789

8890
Shenandoah GC 在 JDK12 中成为正式可生产使用的 GC,默认关闭,通过 `-XX:+UseShenandoahGC` 启用。
8991

@@ -96,7 +98,7 @@ Shenandoah GC 需要通过命令启用:
9698
- JDK 24 需通过命令行参数组合启用:`-XX:+UseShenandoahGC -XX:+UnlockExperimentalVMOptions -XX:ShenandoahGCMode=generational`
9799
- JDK 25 之后仅需 `-XX:+UseShenandoahGC -XX:ShenandoahGCMode=generational` 即可启用。
98100

99-
## JEP 507: 模式匹配支持基本类型 (第三次预览)
101+
### JEP 507: 模式匹配支持基本类型 (第三次预览)
100102

101103
该特性第一次预览是由 [JEP 455](https://openjdk.org/jeps/455 "JEP 455") (JDK 23 )提出。
102104

@@ -112,7 +114,7 @@ static void test(Object obj) {
112114

113115
这样就可以像处理对象类型一样,对基本类型进行更安全、更简洁的类型匹配和转换,进一步消除了 Java 中的模板代码。
114116

115-
## JEP 505: 结构化并发(第五次预览)
117+
### JEP 505: 结构化并发(第五次预览)
116118

117119
JDK 19 引入了结构化并发,一种多线程编程方法,目的是为了通过结构化并发 API 来简化多线程编程,并不是为了取代`java.util.concurrent`,目前处于孵化器阶段。
118120

@@ -136,7 +138,7 @@ JDK 19 引入了结构化并发,一种多线程编程方法,目的是为了
136138

137139
结构化并发非常适合虚拟线程,虚拟线程是 JDK 实现的轻量级线程。许多虚拟线程共享同一个操作系统线程,从而允许非常多的虚拟线程。
138140

139-
## JEP 511: 模块导入声明
141+
### JEP 511: 模块导入声明
140142

141143
该特性第一次预览是由 [JEP 476](https://openjdk.org/jeps/476 "JEP 476") (JDK 23 )提出,随后在 [JEP 494](https://openjdk.org/jeps/494 "JEP 494") (JDK 24)中进行了完善,JDK 25 顺利转正。
142144

@@ -161,7 +163,7 @@ public class Example {
161163
}
162164
```
163165

164-
## JEP 513: 灵活的构造函数体
166+
### JEP 513: 灵活的构造函数体
165167

166168
该特性第一次预览是由 [JEP 447](https://openjdk.org/jeps/447 "JEP 447") (JDK 22)提出,随后在 [JEP 482 ](https://openjdk.org/jeps/482 "JEP 482 ")(JDK 23)和 [JEP 492](https://openjdk.org/jeps/492 "JEP 492") (JDK 24)经历了预览,JDK 25 顺利转正。
167169

@@ -197,7 +199,7 @@ class Employee extends Person {
197199
}
198200
```
199201

200-
## JEP 508: 向量 API(第十次孵化)
202+
### JEP 508: 向量 API(第十次孵化)
201203

202204
向量计算由对向量的一系列操作组成。向量 API 用来表达向量计算,该计算可以在运行时可靠地编译为支持的 CPU 架构上的最佳向量指令,从而实现优于等效标量计算的性能。
203205

0 commit comments

Comments
 (0)