java – 如何检查堆内存中创建的对象数?
我想看看在运行程序时
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来避免程序终止. 我已经经历了这个SO How to find the number of objects in the heap并尝试使用jvisualvm,但该工具没有给出我班上创建的对象的计数.我也不明白如何根据下图获得实际的物体数量. 当我尝试使用命令jmap -heap< pid>然后我得到以下错误:
如果我使用eclipse Debug作为选项,那么我发现它不是找出正在创建的对象数量的正确方法. 解决方法
如果您查看调试器,您可以看到它
String @ 437对象在s1 s2 s3中是相同的,但这是指char [2] @ 438,它是另一个对象.因此,您有两个对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |