方法區(method area)只是 JVM 規范中定義的一個概念,用于存儲類信息、常量池、靜態變量、JIT編譯后的代碼等數據,并沒有規定如何去實現它,不同的廠商有不同的實現。而永久代(PermGen)是 Hotspot 虛擬機特有的概念, Java8 的時候又被元空間取代了,永久代和元空間都可以理解為方法區的落地實現。
JDK1.8之前調節方法區大小:
JDK1.8開始方法區(HotSpot的永久代)被徹底刪除了,取而代之的是元空間,元空間直接使用的是本機內存。參數設置:
棧、堆、方法區的交互關系