我得到一个.hprof文件,我正在使用Eclipse Memory Analyzer(MAT)进行分析。
我运行 Top Component 报告,在 Duplicate Strings 部分,MAT检测到一些内容相同的String实例。
我正在为String.intern()
和其他家庭作业工作,但现在这不是我的问题。
该报告向我展示了重复的字符串:
其他字符串是可读的,但是,这些字符串怎么样?我认为它们来自XML解析(我在我的应用程序中使用JibX)。
我的问题是:
对于这些 UTF-8类似字符串的任何建议都将非常感激。提前谢谢。
答案 0 :(得分:1)
有趣的是看到Strings有很多\ u0000个字符,这是非常罕见的,因为字符串在Java中不以0结尾,因此它们是从String(byte [])构造函数创建的,也许是String( byte [],encoding)构造函数,来自包含0的字节数组。
我会使用分析器并分析这些构造函数的调用图。然后你会找到罪魁祸首。
答案 1 :(得分:1)
您可以右键单击可疑字符串,然后选择列出对象/使用传入引用。这将显示引用您的字符串的对象。