使用OQL进行字符串搜索

21

我正在使用VisualVM分析核心转储文件。我怀疑某些XML对象是导致内存泄漏的原因,但有太多的字符串对象需要逐个检查。

我能否使用OQL搜索以'GH'开头的字符串?

感谢任何帮助。

4个回答

31

在JDK 1.8.20下,有一种更简单的变体可行:

select s from java.lang.String s where s.toString().startsWith("GH")

谢谢您的回复。您在哪里可以找到所有支持方法的文档?谷歌搜索只会导向一些不起作用的随机博客。 - higuaro
刚刚看了下面的答案,猜测startsWith可能可行。另外据我所知,可以使用堆转储文件来进行SQL操作。 - Yura

24
尝试这个: 从java.lang.String s中选择 {instance: s, content: s.toString()},其中s.count>2并且s.toString().substring(0,2)=="GH"

6
heap.objects('java.lang.String', false, "it.toString().startsWith('GH')")

8
一两句话的简要总结可以帮助审核者(比如我)评估您的答案的有效性;有兴趣的用户不必深入代码就能理解您的方法。简短明了即可,不需要太多工作量。 - Ingo Karkat

-1

从 a.b.c.MyClass c 中选择 c.attr_name.toString(),其中 c.attr_name.toString().startsWith("GH")


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接