前言:在java8中,Metaspace的出现,使我们现在不会再遇到java.lang.OutOfMemoryError: PermGen问题,但是我们要记住,这个新特性并不会使类加载导致的内存泄露就此消失。
(一)Metaspace的简单介绍
(1)内存模型:大部分类元数据都在本地内存分配,用于描述类元数据的“klasses“已经被移除。
(2) 容量:默认情况下只受本地内存限制,但是我们可以限制。
(二)接下来看看Metaspace会不会出现OOM
我们可以通过动态代理来生成大量的代理类信息填充元数据区。代码如下
public interface MetaspaceFacade {
void method(String input);
}
public class MetaspaceFacadeImpl implements MetaspaceFacade {
public