JVM 运行时数据区的各个组件分别存储什么内容
2026/6/13 13:39:26 网站建设 项目流程

Java 8为背景,系统、清晰地为你讲解JVM(Java Virtual Machine)运行时数据区的各个组件分别存储什么内容,并重点剖析堆(Heap)的作用,辅以实际代码说明。

一、Java 8 中 JVM 内存结构概览

Java 8中,JVM 的运行时数据区主要包括以下五个部分:

  1. 堆(Heap) ✅(核心,对象存储区)
  2. 方法区(Method Area) → 被「元空间(Metaspace)」取代
  3. Java 虚拟机栈(Java Virtual Machine Stack)
  4. 本地方法栈(Native Method Stack)
  5. 程序计数器(Program Counter Register)

⚠️ 关键变化:Java 8 移除了永久代(PermGen),引入了元空间(Metaspace),使用本地内存(Native Memory)而非 JVM 堆内存来存储类元数据。

二、各组件详解(以 Java 8 为准)

1. 堆(Heap) —— 对象的“主战场”

  • 线程共享
  • 几乎所有通过 new 创建的对象实例和数组都分配在堆上
  • 是 垃圾回收(GC)的主要区域
  • 分为:
    • 新生代(Young Generation):Eden + Survivor S0/S1
    • 老年代(Old Generation)
✅ 堆中存储的内容:
  • 普通对象(如 new Person()
  • 数组(如 new int[10]
  • 包装类对象(如 new Integer(10)
  • 字符串对象(包括字符串

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询