OQL可以用来查询jvm堆中对象信息 将jvm堆dump下了的命令可见:https://www.yuque.com/zhqy/java/xlv2yg#469b7b22 单位:byte(B)

示例代码

  1. package com.zhqy.oql;
  2. import org.apache.commons.lang.StringUtils;
  3. import java.util.ArrayList;
  4. import java.util.LinkedList;
  5. import java.util.List;
  6. /**
  7. * <h3>测试OQL语法</h3>
  8. *
  9. * @author zhqy
  10. * @version 1.0.0
  11. * @CreateDate 2019/7/23
  12. */
  13. public class OqlMain {
  14. private List<String> nameList = new ArrayList<>();
  15. private List<Person> personList = new LinkedList<>();
  16. private String[] titles = new String[]{"吃货", "胖砸", "美女", "帅哥"};
  17. public void init(){
  18. nameList.add("张三");
  19. personList.add(new Person(nameList.get(0), 40, StringUtils.join(new String[]{titles[0], titles[1]}, ",")));
  20. nameList.add("李四");
  21. personList.add(new Person(nameList.get(1), 20, StringUtils.join(new String[]{titles[0], titles[3]}, ",")));
  22. nameList.add("美女");
  23. personList.add(new Person(nameList.get(0), 23, StringUtils.join(new String[]{titles[2]}, ",")));
  24. }
  25. }
  26. class Person{
  27. private String name;
  28. private int age;
  29. private String titles;
  30. public Person(String name, int age, String titles) {
  31. this.name = name;
  32. this.age = age;
  33. this.titles = titles;
  34. }
  35. public String getName() {
  36. return name;
  37. }
  38. public void setName(String name) {
  39. this.name = name;
  40. }
  41. public int getAge() {
  42. return age;
  43. }
  44. public void setAge(int age) {
  45. this.age = age;
  46. }
  47. public String getTitles() {
  48. return titles;
  49. }
  50. public void setTitles(String titles) {
  51. this.titles = titles;
  52. }
  53. }

查看对象

image.png

  1. select * from com.zhqy.oql.OqlMain

查看对象中某一个属性

此时直接在需要查看的属性上右击,选择“copy”->“OQL Query”即可
image.png

  1. SELECT * FROM OBJECTS 197769

image.png

查看list的元素数量

  1. SELECT s.size FROM OBJECTS 197769 s

image.png

根据类名查询

正则

  1. SELECT * FROM ".*pool.*"

image.png

where条件

  1. SELECT * FROM java.lang.Thread s where toString(s) LIKE ".*elastic.*"

image.png