- 首先明确:只有HotSpot虚拟机才有永久代。其他虚拟机是不存在永久代的概念 。
- HotSpot中 方法区的变化:
注意:静态变量是指“static Object obj=new Object()”中的obj变量,而不是new的对象。
永久代为什么被元空间替换 ?
(1)为永久代设置空间大小是很难确定的。在某些场景下,如果动态加载类过多,容易产生OOM。而元空间和永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。因此 ,默认情况下,元空间的大小仅受本地内存限制。
(2)对永久代进行调优是很困难的。
(3)替换成元空间也能够避免频繁的进行Full GC。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)