1.打开Mat 的keep unreachable object open选项,这样才能够查看到所有对象(包括即将被gc回收掉的对象),
2.在打开了keep unreachable 选项的情况下如何查看不可达的object: 步骤如下:右键点击内存文件的图标–>java basics–>选择gc root选项–>选择unreachable选项–>可以查看到所有不可达的对象列表–>点击某个不可达的对象–>Immediate Dominator查看直接应用了不可达对象的直接上级
下面介绍下什么叫做:Dominator
假设有这样两条引用的路径,其中A和B是gc root对象,
A–>C–>D–>H和B–>C–>E–>H,那么我们知道D的直接Dominator是C,因为C回收意味着D的内存肯定能回收,H的直接Dominator是C,不是D也不是E,原因是只有C被回收了,H的内存才能够回收,只单独回收D或E都不能回收H的内存