JVM記憶體模型

天有多高我有多骚發表於2024-08-05

為什麼要廢棄永久代,引入元空間?

1.字串存在永久代中,現實使用中易出問題, 由於永久代記憶體經常不夠用或發生記憶體洩露,爆出異常 java.lang.OutOfMemoryError: PermGen

2.類及方法的資訊等比較難確定其大小,因此對於永久代的大小指定比較困難,太小容易出現永久代溢位,太大則容易導致老年代溢位。

3.永久代會為 GC 帶來不必要的複雜度,並且回收效率偏低。

相關文章