HSDB工具的使用说明

Java对象信息对开发者来说并不是透明的,需要借助工具来更好查询对象的运行情况,这里我们带来HSDB工具。

演示

打开工具过程

  1. 工具是JDK自带的:目录:jdk1.8.0_20\lib\sa-jdi.jar。

  2. 使用cmd,并且切换到Jar所在目录:C:\Program Files\Java\jdk1.8.0_20\bin 。

使用命令提示符在当前jdk目录下的lib下面

  1. 执行命令下面,会自动弹出一个界面。
perl 复制代码
java -cp sa-jdi.jar sun.jvm.hotspot.HSDB

界面如下:

  1. 准备一个测试案例看看如何使用该工具
java 复制代码
import java.io.IOException;

public class HsdbDemo {
    public static final int i = 2;
    public static void main(String[] args) throws IOException, InstantiationException, IllegalAccessException {
        HsdbDemo hsdbDemo = new HsdbDemo();
        System.out.println(i);
        System.in.read();
    }
}

写了一个死循环,把他运行起来,然后执行jps 命令。

jps -- 查询进程的id

找到我们需要的进程号(对应的类名称HsdbDemo),将该进程号填入HSDB工具中。

点击Ok后会出现报错:

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

移动到jre1.8.0_20\bin文件所在的目录下面,从新运行命令并且加入进程号就能看到如下界面。



  1. 查看对象信息

点击打开

我们要根据内存地址找到Java底层对应的对象

输入内存地址并且点击compute Liveness。

相关推荐
float_com13 分钟前
【java进阶】------ Lambda表达式
java·开发语言
小碗羊肉21 分钟前
【从零开始学Java | 第二十三篇】泛型(Generics)
java·开发语言·新手入门
woai336427 分钟前
学习JVM-基础篇-类加载器&双亲委派机制
jvm
m0_7505803030 分钟前
Java并发—Java线程
java·开发语言
QuZero42 分钟前
JDK7 ConcurrentHashMap principle
java·哈希算法
2301_814590251 小时前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
独断万古他化1 小时前
【Java 实战项目】多用户网页版聊天室:消息传输模块 —— 基于 WebSocket 实现实时通信
java·spring boot·后端·websocket·ajax·mybatis
yyt3630458411 小时前
spring单例bean线程安全问题讨论
java·spring
我是大猴子1 小时前
事务失效的几种情况以及是为什么(详解)
java·开发语言
wertyuytrewm2 小时前
Java面试——Java基础
java·jvm·面试