準備工做,建幾個測試類。等下就是要查看這幾個類裏面的屬性java
package visualvm; public class MultiObject { private String str; private int i; MultiObject(String str, int i) { this.str = str; this.i = i; } }
package visualvm; public class SingleObject { private String str; private int i; SingleObject(String str, int i) { this.str = str; this.i = i; } }
package visualvm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class VisualvmMain { public static void makeObject() { SingleObject singleObject = new SingleObject("single", 1); MultiObject multiObject1 = new MultiObject("multi", 1); MultiObject multiObject2 = new MultiObject("multi", 2); try { new BufferedReader(new InputStreamReader(System.in)).readLine(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { VisualvmMain.makeObject(); } }
利用測試
new BufferedReader(new InputStreamReader(System.in)).readLine();this
來組織程序退出。用別的方式也能夠。對象
而後打開 jvisualvm.exe 查看內存內存
1.左邊應用程序打開程序,get
2. tab選監視it
3. 點 堆Dumpio
出現heapDump 標籤,點咱們要的類標籤。會顯示全部的類class
在左下角的類名過濾器輸入咱們的SingleObject。 能夠看到實例數是1import
在左下角的類名過濾器輸入咱們的SingleObject。 能夠看到實例數是1。點擊進入能夠看到實例的成員變量。 原始類型init 直接顯示值。對象類型顯示的引用地址。
對str 作右鍵「顯示實例」,看到有不少個String類型,即便個人main方法裏面只有幾句代碼。