jdk1.6及之前 | 有永久代,静态变量存在永久代上 |
jdk1.7 | 有永久代,但已经逐步“去永久代”,字符串常量池,静态变量移除保存在堆中 |
jdk8及以后 | 无永久代,类型信息,字段,方法,常量保存在本地内存的元空间,但是字符串常量池,静态变量任然保存在堆上 |
jdk7及以前:永久代 占jvm内存大小
jdk8及以后:元空间 占物理机内存大小
jdk7及以前
-XX:MaxPermSize 设置永久代最大大小 默认32位64M 64位82M
-XX:PermSize 设置永久代初始大小 默认20.75M
jdk8及以后
-XX:MaxMetaspaceSize 设置永久代最大大小 默认-1 没有限制
-XX:MetaspaceSize 设置永久代初始大小 默认21M
注意:new的静态对象一直在堆上存放。