suaxi
2020-11-29 / 0 评论 / 164 阅读 / 正在检测是否收录...

Heap,一个JVM只有一个堆内存,堆内存的大小可以调节

类加载器读取了类文件以后,一般会把类,方法,常量,变量……放到堆中,保存所有引用类型的真实对象

堆内存中细分为三个区域:

  • 新生区(伊甸园区) young/new
  • 养老区 old
  • 永久区 perm

堆的三个区.png

注:GC垃圾回收主要在伊甸园区和养老区

假设内存满了,会报OutOfMemoryError错误

package com.sw.lesson;

import java.util.Random;

/**
 * @Author suaxi
 * @Date 2020/11/29 22:01
 */
public class Test {
    public static void main(String[] args) {
        String s = "abcdefg";
        while(true){
            s += s + new Random(1234567891) + new Random(1234567891);
        }
    }
}

报错如下:

OutOfMemoryError.png

在Jdk 8以后,永久存储区改名为元空间。

0

评论 (0)

取消