大家都知道,类被加载到JVM是放在所谓的方法区: JDK7之前是持久代(PermGen),JDK7开始是元空间(metaspace)。所以不免也会简单地认为,类的成员变量(变量本身,而不是变量指向的对象)也是分配在方法区里。
本篇呢,就通过HSDB这个工具,来分析下类的静态变量到底在哪里分配,同时熟悉下如何使用HSDB这个工具查看Java内存信息。
一、启动Java进程我们通过debug模式运行如下代码,将断点放在打印System.out.println("test")这一行:
package hsdb public class Test { static Test t1 = new Test(); public static void main(String[] args)throws Exception { System.out.println("test");//此行打断点 } }