《Java 底層原理》HSDB工具的使用說明

前言

Java對象信息對開發者來說並不是透明的,需要藉助工具來更好查詢對象的運行情況,這裏我們帶來HSDB工具。

演示

打開工具過程

1. 工具是JDK自帶的:目錄:jdk1.8.0_191\lib\sa-jdi.jar。

2. 使用cmd,並且切換到Jar所在目錄。

3. 執行命令下面,會自動彈出一個界面。

java -cp sa-jdi.jar sun.jvm.hotspot.HSDB

界面如下:

4. 準備一個測試案例看看如何使用該工具

public class JvmTest {
    public static void main(String[] args) {
        while(true);
    }
}

寫了一個死循環,把他運行起來,然後執行jps 命令。

jps -l     -- 查詢進程的id

找到我們需要的進程號,將該進程號填入HSDB工具中。

點擊Ok後會出現報錯:

提示缺少sawingdbg.dll,該文件在jre/bin目錄下:

移動到jre1.8.0_191\bin文件所在的目錄下面,從新運行命令並且加入進程號就能看到如下界面。

5. 查看對象信息

點擊打開

我們要根據內存地址找到Java底層對應的對象

輸入內存地址並且點擊compute Liveness。

入門案例結束

擴展

選擇mian線程,查看線程堆棧。

獲取內存地址去查看JVM對應的對象信息。

查詢對象情況:

總結

HSDB工具能非常好讓我們學習JVM瞭解Java對象的結構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章