Skip to content

工具与软件索引 ​

SX-004选修入门约 30 分钟JDK 21资源索引 · 工具与软件索引

1. 本节定位 ​

工具不是越多越好,而是「够用 + 会用」 —— 链接列表在 项目与工具索引,本节给的是「最小必需工具链」与选择原则 ✓✓。

★ 一条主线:从「开发」到「诊断」到「验证」的三段工具链 ✓✓:

text
开发:JDK 21 + Maven(Wrapper) + IDEA + Git
诊断:jcmd / jstack / jmap(JDK 自带)+ Arthas(在线诊断)+ GC 日志
验证:JUnit 5 + Mockito + REST Assured + Selenium + JMeter
★ 原则:**先用 JDK 自带的,再上第三方;每个工具都要能说出「什么时候用它」** ✓✓✓

2. 学习目标 ​

  • 掌握最小必需工具链(开发 / 诊断 / 验证三段)★★★;
  • 知道「JDK 自带工具优先」的原因 ★★★;
  • 会为每个工具建立「使用场景」索引(而不是罗列功能)★★;
  • 知道工具选型的三条原则 ★★。

3. 前置知识检查 ​

4. 为什么需要这个知识 ​

★ 工具链的两种失衡 ✗✗:

失衡代价
工具饥渴(每个新工具都装)✗✗学一堆半吊子,关键时刻一个都不熟
工具匮乏(只用 IDE 的点按钮)✗✗线上问题无法定位(IDE 连不上生产)✓✓

5. 核心概念 ​

5.1 最小必需工具链(三段)★★★ ​

段工具什么时候用
开发JDK 21(LTS)+ Maven Wrapper + IDEA + Git ✓日常编码与协作
诊断jps / jcmd / jstack(JDK 自带)✓✓线上第一响应(无依赖、最稳)
Arthas ✓✓✓需要看方法内部(trace/watch/jad)时
GC 日志(-Xlog:gc*)✓✓内存与停顿问题
jmap / -XX:+HeapDumpOnOutOfMemoryError ✓保留 OOM 现场
验证JUnit 5 + Mockito ✓✓单元测试
REST Assured ✓接口测试
Selenium + 驱动 ✓UI 自动化(本机 Edge 驱动需与主版本一致)
JMeter ✓压测与拐点定位
构建/交付Docker ✓环境一致性
CI 流水线(三条:docs / java / coverage)✓质量门禁

★★ 顺序原则 ✓✓✓:先用 JDK 自带的,再上第三方 —— jps → jcmd 能解决 60% 的线上问题;Arthas 解决剩下的深度问题 ✓✓(《Arthas 与线上问题诊断》 的实测顺序)。

5.2 工具的三个「必答问题」★★★ ​

text
对每个你「会用」的工具,回答:
① 它解决什么问题?(一句话)✓
② 什么时候用它、什么时候**不用**它?✓✓(边界)
③ 用它的成本是什么?(开销 / 依赖 / 权限)✓✓✓

★ 示例(Arthas) ✓✓:① 在线诊断(无需重启);② 需要看方法内部时用,只看看线程/堆就别上它; ③ 增强有开销(trace 高流量方法必须限额)、需要授权 ✓。

5.3 选型三原则 ★★ ​

原则说明
必要性优先 ✓✓没有明确场景的工具不装(装了就忘)
可替代性 ✓优先选「团队已有 + 生态成熟」的(避免孤岛工具)
可观测自身 ✓✓工具自己要能"被排障"(有日志、有版本、可回滚)

5.4 版本与驱动:最常踩的两个坑 ★★ ​

text
① JDK 版本:编译 --release 21(基线),本机可跑更高版本 —— 但**行为差异要验证** ✓✓
② 浏览器驱动:驱动必须与本机浏览器主版本一致(Edge 驱动从国内镜像取)✗✗
★ 两个坑都在本知识库的规则文件里有记录(.codebuddy/rules)✓✓✓

6. 递进示例 ​

6.1 一次线上排查的工具顺序 ​

text
① jps 找到进程 → ② jcmd Thread.print 看线程与死锁
→ ③ 不够深才上 Arthas(thread/trace/watch)→ ④ 内存问题加 GC 日志与 heap dump
★ 顺序 = 成本从低到高 ✓✓✓

6.2 反例:一上来就上「全家桶」 ​

text
装 APM、装探针、装火焰图 ✗✗(还没定位就先付开销与复杂度)
正解:**先用零成本工具缩小范围,再针对性上工具** ✓✓✓

7. 索引与使用 ​

8. 观察点 ​

  1. 用「三个必答问题」检查你的常用工具:能答全几个?✓✓;
  2. 找一个「装了没用过」的工具:卸载或补一次实操 ✓✓;
  3. 在无网络环境验证你的诊断链路(jps/jcmd 是否可用)✓✓✓。

9. 常见错误 ​

#错误说明
1工具饥渴 ✗✗装了不用等于没有 ✓✓
2只会 IDE 点按钮 ✗✗线上(无 IDE)无从下手 ✓✓
3忽略 JDK 自带工具 ✗✗零依赖、最稳的第一响应 ✓✓✓
4不记版本与驱动对齐 ✗✗反复踩同一个坑 ✓
5不知道工具开销 ✗诊断本身压垮服务 ✓✓

10. 动手实验 ​

  1. 整理你的「三段工具链」清单,标注每个的「使用场景」✓✓✓;
  2. 用三个必答问题写 3 个工具的说明卡 ✓✓;
  3. 演练一次「零成本排查」:只用 jps + jcmd 定位一个问题 ✓✓✓。

验收方式:能说出三段工具链的各 2-3 个工具,并为每个说出使用场景与替代方案。

11. 练习题 ​

  1. 三段工具链分别有哪些工具?
  2. 为什么「JDK 自带工具优先」?
  3. 工具的「三个必答问题」?以 Arthas 为例。
  4. 选型三原则?
参考答案(要点)
  1. 开发(JDK/Maven/IDEA/Git)/ 诊断(jcmd/Arthas/GC 日志/堆快照)/ 验证(JUnit/REST Assured/Selenium/JMeter) ✓✓★
  2. 零依赖、最稳、无额外开销,能解决大部分问题 ✓✓★
  3. 解决什么 / 何时用与何时不用 / 成本;Arthas:在线诊断 / 需要看方法内部 / 有开销且需授权 ✓✓★
  4. 必要性优先 / 可替代性 / 可观测自身 ✓✓★

12. 掌握标准 ​

  • [ ] 有三段工具链清单与使用场景 ★★★;
  • [ ] 优先使用 JDK 自带工具 ★★★;
  • [ ] 能说出常用工具的边界与成本 ★★★。

13. 扩展资源 ​

14. 下一步学习 ​

SX 资源索引区到此完成 —— 全库 214 个知识点全部有页面 ✓✓✓ 继续:学习路线总览 | 知识覆盖矩阵 | 《环境与工具链》

前置知识

无,可直接开始

后续知识

暂无

进度只保存在本机浏览器,可随时清除

个人学习项目:AI 生成内容均经人工复核,第三方资源仅作索引