OQL可以用来查询jvm堆中对象信息 将jvm堆dump下了的命令可见:https://www.yuque.com/zhqy/java/xlv2yg#469b7b22 单位:byte(B)
示例代码
package com.zhqy.oql;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
* <h3>测试OQL语法</h3>
*
* @author zhqy
* @version 1.0.0
* @CreateDate 2019/7/23
*/
public class OqlMain {
private List<String> nameList = new ArrayList<>();
private List<Person> personList = new LinkedList<>();
private String[] titles = new String[]{"吃货", "胖砸", "美女", "帅哥"};
public void init(){
nameList.add("张三");
personList.add(new Person(nameList.get(0), 40, StringUtils.join(new String[]{titles[0], titles[1]}, ",")));
nameList.add("李四");
personList.add(new Person(nameList.get(1), 20, StringUtils.join(new String[]{titles[0], titles[3]}, ",")));
nameList.add("美女");
personList.add(new Person(nameList.get(0), 23, StringUtils.join(new String[]{titles[2]}, ",")));
}
}
class Person{
private String name;
private int age;
private String titles;
public Person(String name, int age, String titles) {
this.name = name;
this.age = age;
this.titles = titles;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getTitles() {
return titles;
}
public void setTitles(String titles) {
this.titles = titles;
}
}
查看对象
select * from com.zhqy.oql.OqlMain
查看对象中某一个属性
此时直接在需要查看的属性上右击,选择“copy”->“OQL Query”即可
SELECT * FROM OBJECTS 197769
查看list的元素数量
SELECT s.size FROM OBJECTS 197769 s
根据类名查询
正则
SELECT * FROM ".*pool.*"
where条件
SELECT * FROM java.lang.Thread s where toString(s) LIKE ".*elastic.*"