我希望在运行程序时看到Java创建了多少个对象。
我的意图是如果我使用代码String s = new String("Hi");
我想看看Java将创建多少个对象。后来我想试试String news = "Hi";
这是我的示例程序:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
String str = new String("Hi");
Scanner s = new Scanner(System.in);
s.nextLine();
}
}
我使用Scanner
只是为了避免程序终止。
我已经浏览了这篇帖子How to find the number of objects in the heap,并尝试使用jvisualvm
,但该工具并未提供我班级中创建的对象的计数。我也不明白如何根据下图获得实际的物体数量。
当我尝试使用命令jmap -heap <pid>
时,我得到以下错误:
附加到处理ID 15101,请稍候...附加到的错误 进程:sun.jvm.hotspot.debugger.DebuggerException:无法附加到 过程
如果我使用eclipse Debug作为选项,那么我发现找出正在创建的对象数量的方法不正确。