[TOC]
> ### `jps`
* **输出`java`进程**
![](https://i.loli.net/2019/03/12/5c874ebbd3acf.png)
<br/>
> ### `jstat`
* **监视虚拟机各种运行状态信息的命令行工具**
```
# 查询8820进程的gc情况,每250ms查询一次,共查询十次
jstat -gc 8820 250 10
```
![](https://i.loli.net/2019/03/12/5c87501fe9406.png)
<br/>
> ### `jinfo`
* **实时的查看和修改JVM参数**
* `jinfo pid`
<br/>
> ### `jmap`
* **`Java`内存映像工具**
* **生成堆转储快照**,一般称为`heapdump`或`dump`文件。如果不使用`jmap`命令,可以通过设置`JVM`参数`-XX:+HeapDumpOnOutOfMemoryError`,虚拟机在`OOM`异常时会自动生成`dump`文件。
* `jmap`还可以查询`finalize`执行队列、`java`堆和永久代的详细信息,如空间使用率、当前用的哪种收集器等。
```
# 生成5168进程的dump文件,之后可以用jvisualvm来分析导出的dump文件
jmap -dump:format=b,file=test.dump 5168
```
![](https://i.loli.net/2019/03/12/5c875326e2fc4.png)
<br/>
> ### `jhat`
* **`JVM`的堆转储快照`dump`分析工具**,与`jmap`搭配使用,来分析`jump`生成的堆转储快照。
```
#启动一个HTTP服务器,生成dump文件的分析结果展示在网页中,通过浏览器访问http://localhost:7000查看
jhat test.dump
```
<br/>
> ### `jstack`
* **堆栈跟踪工具**,生成`JVM`当前时刻的线程快照(一般称为threaddump和javacore文件),线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合。
* 生成线程快照主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。
![](https://i.loli.net/2019/03/12/5c875948f22f8.png)
<br/>
> ### `hsdis`
* **`JIT`生成代码反汇编**
<br/>
> ### `jvisualvm`
* `JVM`监控可视化工具
* 进程的配置环境信息`jps` `jinfo`
* CPU、堆、方法区、线程、GC `jstat` `jstack`
* dump以及分析dump堆转储快照 `jmap` `jhat`
- asD
- Java
- Java基础
- Java编译器
- 反射
- collection
- IO
- JDK
- HashMap
- ConcurrentHashMap
- LinkedHashMap
- TreeMap
- 阻塞队列
- java语法
- String.format()
- JVM
- JVM内存、对象、类
- JVM GC
- JVM监控
- 多线程
- 基础概念
- volatile
- synchronized
- wait_notify
- join
- lock
- ThreadLocal
- AQS
- 线程池
- Spring
- IOC
- 特性介绍
- getBean()
- creatBean()
- createBeanInstance()
- populateBean()
- AOP
- 基本概念
- Spring处理请求的过程
- 注解
- 微服务
- 服务注册与发现
- etcd
- zk
- 大数据
- Java_spark
- 基础知识
- Thrift
- hdfs
- 计算机网络
- OSI七层模型
- HTTP
- SSL
- 数据库
- Redis
- mysql
- mybatis
- sql
- 容器
- docker
- k8s
- nginx
- tomcat
- 数据结构/算法
- 排序算法
- 快排
- 插入排序
- 归并排序
- 堆排序
- 计算时间复杂度
- leetcode
- LRU缓存
- B/B+ 树
- 跳跃表
- 设计模式
- 单例模式
- 装饰者模式
- 工厂模式
- 运维
- git
- 前端
- thymeleaf
- 其他
- 代码规范
- work_project
- Interview