1112 字
约 3 分钟
5
S05-X01 · 并发与 JVM 八股速查
定位:附录索引。题 → 一句话答案 → 正文位置。
覆盖旧文:2607(340) 1554(208) 1891(122) 2591(25) 1635(94) + 2381(350)/849(76)(→S11)= 1,671 点。
上一篇:S05-A02 · 线上故障诊断:工具矩阵与 SOP
下一篇:S06 · Java 工程化与组件(下一系列)。
1. 并发(对应 B01–B05、J01–J03)
| # | 问题 | 一句话答案 | 正文 |
|---|---|---|---|
| 1 | 并发三大特性 | 可见性/原子性/有序性 | B01 §1 |
| 2 | i++ 为什么丢数据 |
读-改-写三步非原子(实测丢 37%) | B01 §2 |
| 3 | volatile 保证什么 |
可见性 + 有序性,不保证原子性 | B01 §3 |
| 4 | happens-before 规则 | 程序顺序/监视器/volatile/线程启停/传递 | B01 §3.1 |
| 5 | ABA 问题 | 值改回原值,CAS 以为没变;用版本号 | B01 §4 |
| 6 | 线程 6 种状态 | NEW/RUNNABLE/BLOCKED/WAITING/TIMED_WAITING/TERMINATED | B02 §1 |
| 7 | BLOCKED 与 WAITING |
等锁 vs 等唤醒 | B02 §1 |
| 8 | start 与 run |
开新线程 vs 当前线程调用 | B02 §2 |
| 9 | synchronized 锁什么 |
实例/Class 对象 | B03 §2 |
| 10 | 锁升级三级 | 偏向→轻量级→重量级(不可逆) | B03 §3 |
| 11 | 偏向锁现状 | JDK 15+ 默认禁用、后续移除 | B03 §3 |
| 12 | sync vs ReentrantLock |
后者支持超时/可中断/多条件 | B03 §4 |
| 13 | 死锁四条件 | 互斥/占有等待/不可剥夺/循环等待 | B03 §5 |
| 14 | ThreadLocal 结构 | 表挂在 Thread 上,key 弱引用 | B04 §2 |
| 15 | 为什么泄漏 | value 强引用 + 池线程不结束 | B04 §2 |
| 16 | 线程池 7 参数 | core/max/keepAlive/queue/threadFactory/handler(+ timeUnit) | B05 §5 |
| 17 | 执行流程 | 核心→队列→扩到 max→拒绝 | B05 §3 |
| 18 | 四种拒绝策略 | Abort/CallerRuns/Discard/DiscardOldest | B05 §3 |
| 19 | 为什么禁用 Executors |
无界队列/无限线程 | B05 §4 |
| 20 | AQS 组成 | volatile state + CLH 队列 | J01 §2 |
| 21 | 公平 vs 非公平 | 严格排队 vs 允许插队(吞吐高) | J01 §4 |
| 22 | CHM 为什么废弃分段锁 | 段数成上限;桶级锁并发度更高 | J02 §2 |
| 23 | COW 适用 | 读多写极少、数据量小 | J02 §3 |
| 24 | CF 并行合并 | thenCombine/allOf(实测 361ms vs 600ms) |
J03 §2 |
2. JVM(对应 J04/J05、A01/A02)
| # | 问题 | 一句话答案 | 正文 |
|---|---|---|---|
| 25 | 运行时五区 | 堆/方法区/栈/本地栈/PC | J04 §1 |
| 26 | 哪个区不会 OOM | 程序计数器 | J04 §1 |
| 27 | 对象存活判定 | 可达性分析(GC Roots) | J04 §4 |
| 28 | 四种引用 | 强/软/弱/虚 | J04 §4 |
| 29 | GC 日志读法 | 回收前->后(上限) 停顿 |
J04 §2 |
| 30 | Evacuation Failure |
晋升失败 → 可能 Full GC | J04 §2、A01 §2 |
| 31 | 类加载五步 | 加载/验证/准备/解析/初始化 | J05 §4 |
| 32 | 准备阶段赋什么 | 零值(不是初始值) | J05 §4 |
| 33 | 双亲委派作用 | 核心类不被覆盖 | J05 §3 |
| 34 | 三种破坏 | 重写 loadClass/TCCL/OSGi | J05 §3 |
| 35 | 为什么"跑久了快" | JIT 分层编译 | J05 §5 |
| 36 | GC 选型三输入 | 堆大小/停顿目标/延迟要求 | A01 §1 |
| 37 | CMS 现在能用吗 | JDK 14 已移除 | A01 §1 |
| 38 | Xms 与 Xmx |
设成相同,避免抖动 | A01 §3 |
| 39 | 排障三段式 | 现象/资源/代码定界 | A02 §3 |
| 40 | 线程栈抓几次 | 连续 3 次找稳定热点 | A02 §3 |
3. 跨系列:数据库死锁(→ S11)
| 卡 | 内容 | 去向 |
|---|---|---|
| A-2381 | 如何解决 MySQL 死锁 | S11 |
| A-849 | 什么是数据库死锁 | S11 |
4. 非知识性卡片登记
| 卡 | 性质 | 处理 |
|---|---|---|
| A-1891 | JVM 学习路线 | 仅登记(路线类) |
| A-2591/1635 | 小册简介 | 仅登记 |
本篇属于系列《S05 · Java 并发与 JVM》,是基础层附录。
S05-X01 · 并发与 JVM 八股速查
https://www.clxhxhhr.top/posts/5254/ 评论
0 条
还没有评论,先写一条吧。