JVM:内存结构

概述

Java虚拟机在运行时的区域称为Java运行时数据区,同时会分成不同的区域各司其职,Java虚拟机运行数据区结构如图显示:

作用

  • 方法区
    所有线程共享,存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
    异常:OutOfMemoryError
  • Java堆
    所有线程共享,存储实例对象。
    异常:OutOfMemoryError
    该区域内存最大,是GC主要管理的区域,也称为GC堆
  • Java栈
    线程私有,存储Java方法中的局部变量,还包括对象的引用
    异常:OutOfMemoryError、StackOverFlowError
  • 本地方法栈
    与Java栈类似,但是服务对象是Netive方法。
  • 程序计数器
    线程私有,用于异常处理,线程恢复等基础功能
    异常:在JVM中唯一没有OutOfMemoryError的内存区域。

总结

内存结构功能