Java 8 为什么要将永久代(PermGen)替换为元空间(MetaSpace)呢?

整个永久代有一个 JVM 本身设置固定大小上线,无法进行调整,而元空间使用的是直接内 存,受本机可用内存的限制,并且永远不会出现java.lang.OutOfMemoryError。你可以使用 -XX:MaxMetaspaceSize 标志设置最大元空间大小,默认值为 unlimited,这意味着它只 受系统内存的限制。-XX:MetaspaceSize 调整标志定义元空间的初始大小如果未指定此标 志,则 Metaspace 将根据运行时的应用程序需求动态地重新调整大小。