「Java面试题第四期」使用过哪些JDK命令?

我们平时使用idea开发,并且项目都是部署到像Tomcat容器上的,所以很少用到JDK自带的一些命令,实际上JDK提供了很多命名用来查看Java程序在运行时的一些信息,这里说一些简单常见的,有兴趣的可以多去了解测试下。

jps

jps:Java Virtual Machine Process Status Tool

用来查看Java进程 ,相当于Linux下的ps命令,只不过它只列出Java进程。

jstat

jstat:JVM Statistics Monitoring Tool

jstat可以查看Java程序运行时相关信息,可以通过它查看堆信息的相关情况

jinfo

jinfo:Java Configuration Info

jinfo可以用来查看正在运行的java程序的扩展参数,甚至支持运行时修改部分参数。

jmap

jmap:Memory Map

jmap用来查看堆内存使用状况,一般结合jhat使用。

jstack

jstack:Java Stack Trace

jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于生成java虚拟机当前时刻的线程快照。

线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。

线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

jconsole

Jconsole:Java Monitoring and Management Console

Java 5引入,一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。可以使用 JConsole来监控 Java 应用程序性能和跟踪Java 中的代码。

小程序→IT面试题练习!

举报
评论 0