Java面试题更新 2026-08-05

请列举并说明你使用过的 JDK 自带命令行工具,并简述各自的用途。

技术原理

考察说明

考察候选人对 JDK 工具链的熟悉程度以及实际项目中的应用经验。

回答思路

  1. 【回答框架 1】JDK 工具分为基础工具和诊断工具。基础工具如 javac 用于编译,java 用于启动应用,jar 用于打包,javadoc 用于生成文档,这些是日常开发必备。
  2. 【回答框架 2】诊断工具常用于性能调优和问题排查。jps 列出 Java 进程,jstat 查看 JVM 统计信息,jinfo 查看和调整运行时参数,jmap 生成堆转储或查看堆详情,jstack 打印线程快照。
  3. 【回答框架 3】JConsole 和 VisualVM 是图形化监控工具,可实时查看内存、线程、类加载等信息。在[实际项目]中,我曾用 jstack 排查线程死锁,用 jmap 分析堆内存泄漏。
  4. 【回答框架 4】选择工具时,命令行工具更轻量,适合服务器环境;图形化工具直观,但需 GUI 支持。具体使用取决于场景,例如线上问题优先用 jstat 和 jstack。
  5. 【关键点 1】javac、java、jar、javadoc 是基础工具。
  6. 【关键点 2】jps、jstat、jinfo、jmap、jstack 是常用诊断工具。
  7. 【关键点 3】JConsole 和 VisualVM 提供图形化监控。
  8. 【关键点 4】jstack 用于线程分析,jmap 用于堆内存分析。
  9. 【易错点 1】混淆 jmap 与 jhat 的用途,jhat 用于分析堆转储文件。
  10. 【易错点 2】在 JDK 9+ 中部分工具已模块化,但命令行使用方式基本不变。
  11. 【易错点 3】误认为 jcmd 取代所有诊断工具,实际各有侧重。