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。

相关推荐
mldlds20 小时前
【异常解决】Unable to start embedded Tomcat Nacos 启动报错
java·tomcat
代码探秘者20 小时前
【Java】final、finally、finalize 区别
java·开发语言
代码探秘者20 小时前
【Java】浅拷贝 VS 深拷贝:核心差异 + 实现方式 + 避坑指南
java·开发语言
盐水冰20 小时前
【Redis】学习(3)Redis的Java客户端
java·redis·学习
阿星仔66620 小时前
claude code switch安装使用指南:一键切换多Claude API
java
weixin1997010801620 小时前
淘宝客商品详情页前端性能优化实战
java·前端·python·性能优化
程途知微20 小时前
Java 内存模型 (JMM) 与 volatile 底层实现
java·后端
何中应20 小时前
IDEA中三个很方便的设置
java·ide·intellij-idea
jing-ya20 小时前
day 50 图论part2
java·算法·深度优先·图论