java8 去掉了永久代permgen(又称非堆,其实也是堆的一部分),类的方法代码,常亮,方法名,静态变量等存放在永久代中
改为使用元空间 Metaspace , Metaspace 不在是堆的一部分,而是使用另辟一块内存,使用本地内存,并且把常量池移动到堆中。
可以通过 -XX:MetaspaceSize 和 -XX:MaxMetaspaceSize 设置初始和最大值。(-X 为jdk标准参数,-XX 为非标准参数)
注意有的jdk版本设置 -XX:MetaspaceSize 不起作用,网上查了可以使用 -XX:InitialBootClassLoaderMetaspaceSize 代替。