在jdk7及以前,习惯上把方法区称为永久代。jdk8开始,使用元空间取代了永久代。
本质上,方法区和永久代并不等价。仅是对hotSpot而言的。《java虚拟机规范》对如何实现方法区,不做统一要求。例如:BEA JRockit/IBM J9中不存在永久代的概念。
现在看来,当年使用永久代,不是好的idea。导致Java程序更容易OOM(超过-XX:MaxPermSize上限)。
...
阅读全文