[TOC]
> ### `jps`
* **輸出`java`進程**

<br/>
> ### `jstat`
* **監視虛擬機各種運行狀態信息的命令行工具**
```
# 查詢8820進程的gc情況,每250ms查詢一次,共查詢十次
jstat -gc 8820 250 10
```

<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
```

<br/>
> ### `jhat`
* **`JVM`的堆轉儲快照`dump`分析工具**,與`jmap`搭配使用,來分析`jump`生成的堆轉儲快照。
```
#啟動一個HTTP服務器,生成dump文件的分析結果展示在網頁中,通過瀏覽器訪問http://localhost:7000查看
jhat test.dump
```
<br/>
> ### `jstack`
* **堆棧跟蹤工具**,生成`JVM`當前時刻的線程快照(一般稱為threaddump和javacore文件),線程快照就是當前虛擬機內每一條線程正在執行的方法堆棧的集合。
* 生成線程快照主要目的是定位線程出現長時間停頓的原因,如線程間死鎖、死循環、請求外部資源導致的長時間等待等都是導致線程長時間停頓的常見原因。

<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