回答重点
主要工具
- javac:Java 编译器,负责将 Java 源代码编译成字节码(.class 文件)。
- java:运行 Java 应用程序的命令,使用 JVM 来解释并执行编译后的字节码文件。
- javadoc:生成 API 文档的工具,能够根据源代码中的注释生成 HTML 格式的文档。
- jar:用于创建和管理 JAR 文件的工具,可以将多个 .class 文件打包为单一文件,便于分发和管理。
- jdb:Java 调试工具,用于在命令行中调试 Java 应用程序,支持断点设置、变量查看等功能。
性能监控和分析工具
- jps:Java 进程工具,显示所有正在运行的 Java 进程,便于监控和诊断。
- jstack:生成线程堆栈信息的工具,常用于分析死锁和线程问题。
- jmap:内存映射工具,可以生成堆转储(heap dump)文件,便于内存泄漏分析和垃圾回收优化。
- jhat:堆分析工具,配合
jmap
使用,分析生成的堆转储文件,帮助开发者了解内存使用情况。 - jstat:JVM 统计监控工具,实时监控垃圾回收、内存、类加载等信息,帮助开发者调优 JVM 性能。
- jconsole:图形化的 JVM 监控工具,可以监控应用程序的内存、线程和类加载情况,常用于监控和调试。
- jvisualvm:功能强大的性能分析工具,支持堆、线程、GC 的详细监控,还提供内存分析和 CPU 性能分析。
诊断工具
- jinfo:用于查看和修改正在运行的 JVM 参数,便于动态调优和调整 JVM 行为。
- jstatd:远程 JVM 监控工具,可以通过网络远程监控 JVM 的状态,适合分布式系统中的性能监控。
拓展知识
高级调试和性能优化工具
- Java Mission Control (JMC):一个功能强大的工具,用于分析和优化 Java 应用程序的性能,提供了基于飞行记录器(Java Flight Recorder,JFR)的性能分析功能,可以详细查看垃圾回收、线程活动、CPU 使用率等指标,是进行深度性能分析的利器。
- Java Flight Recorder (JFR):低开销的监控工具,能够记录 JVM 的运行时数据,适合生产环境中的性能分析,尤其是在高并发系统中使用频率较高。
GC 调优和内存分析
jmap 和 jhat 常用于排查内存泄漏或内存占用过高的问题。通过 jmap
生成堆转储文件后,开发者可以使用 jhat
或其他工具(如 Eclipse MAT)分析对象的引用链,从而发现潜在的内存问题。
线程和死锁分析
jstack 是用于调试线程状态的利器,尤其是在分析线程死锁时。当应用卡死或响应时间异常时,通过 jstack
可以捕获应用的线程状态,并分析是否存在死锁情况。