有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在堆文件中找到局部变量

我有一个j2ee应用程序,并通过visualVM监控它

假设我有这样一种方法:

public void doStuff(int param) {
    String s = getStringVariable(param);
    StringBuilder sb = new StringBuilder();
    //Do stuff with sb object
}

从线程点击中,我可以看到我的一些线程卡在上述方法中。因此,我生成了一个堆转储文件,以确定s和sb包含什么

但是我怎么能做到呢?我正在使用Eclipse内存分析器


共 (1) 个答案

  1. # 1 楼答案

    您可以从线程中获取局部变量,因为如果局部变量当前是活动的,那么这意味着该变量的唯一引用是它自己的线程

    因此,首先您需要列出您当前的线程,您可以通过以下方式完成:

    1. 单击操作栏 []中的对象选项按钮
    2. 选择Java基础知识->;线程概述和堆栈

    然后列出特定线程的对象:

    • 右键单击->;列表对象->;传出引用

    然后在标记<Java Local>中搜索局部变量