1.1.运行时数据区域

1.概述

JVM内存布局规定了java在运行过程中内存申请、分配、管理的策略,保证了java的高效稳定执行,不同的jvm对于内存的划分方式和管理机制存在着部分差异,经典的JVM布局如下:

1.1.运行时数据区域

1.1.运行时数据区域

虚拟机定义了若干程序运行期间使用到的数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁(进程对应的区域)

另外一些和线程一一对应,会随着线程开始和结束而创建和销毁

灰色的是单独线程私有的,红色的是进程的,多个线程共享的

  • 每个线程:独立包括程序计数器、栈、本地栈
  • 线程间共享:堆、堆外内存(永久代或元空间、代码缓存)

1.1.运行时数据区域

每个Java应用程序都有一个Runtime类的Runtime(单例) ,允许应用程序与运行应用程序的环境进行接口,runtime对象就相当于运行时数据区