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