jstack和jstat有什么区别?

jstack和jstat有什么区别? 这是Java面试高频必考题我给你用最清晰、最好记、面试直接说的方式讲清楚不绕弯子。jstack 和 jstat 核心区别一句话总结jstack 看线程栈→ 查CPU高、死锁、代码卡在哪jstat 看内存GC→ 查内存泄漏、GC频繁、堆使用一个看线程一个看垃圾回收完全不是一个东西。详细对比面试照着说1. jstack作用导出当前时刻所有线程的堆栈信息。用来解决什么问题CPU 飙高死锁程序卡住、假死线程阻塞、等待、死循环看什么每个线程当前执行到哪一行代码线程状态RUNNABLE/BLOCKED/WAITING锁竞争情况典型命令jstackpid2. jstat作用实时查看JVM 内存使用 GC 统计信息。用来解决什么问题频繁 GC / Full GC内存占用高内存泄漏堆分配不合理看什么YGC 次数、耗时FGC 次数、耗时伊甸区、survivor、老年代使用率典型命令jstat-gcpid1000// 每秒打印一次GC情况最经典的面试题CPU 高你用谁内存高你用谁标准答案CPU 高 → 用 jstack 定位线程和代码行内存高 / GC 频繁 → 用 jstat 看 GC 情况极简记忆口诀超好背stack 看栈线程→ 找CPU、找死锁、找代码stat 看状态GC→ 找内存、找垃圾回收总结jstack 线程快照 → 排查 CPU 高、死锁、代码卡住jstat GC 统计 → 排查内存占用、频繁 GC