说一下 JVM 运行时数据区 ?

目录

[一、程序计数器(Program Counter Register)](#一、程序计数器(Program Counter Register))

[二、Java 虚拟机栈(Java Virtual Machine Stacks)](#二、Java 虚拟机栈(Java Virtual Machine Stacks))

[三、本地方法栈(Native Method Stack)](#三、本地方法栈(Native Method Stack))

[四、Java 堆(Java Heap)](#四、Java 堆(Java Heap))

[五、方法区(Methed Area)](#五、方法区(Methed Area))


一、程序计数器(Program Counter Register)

当前线程所执行的字节码的行号指示器,字节码解析器的工作是通过改变这个计数器的值,来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能,都需要依赖这个计数器来完成(为什么要线程计数器?因为线程是不具备记忆功能)

二、Java 虚拟机栈(Java Virtual Machine Stacks)

每个方法在执行的同时都会在Java 虚拟机栈中创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息;(栈帧就是Java虚拟机栈中的一个单位)

三、本地方法栈(Native Method Stack)

与虚拟机栈的作用是一样的,只不过虚拟机栈是服务 Java方法的,而本地方法栈是为虚拟机调用 Native 方法服务的;(Native 关键字修饰的方法是看不到的,Native 方法的源码大部分都是 C和C++ 的代码)

四、Java 堆(Java Heap)

Java 虚拟机中内存最大的一块,是被所有线程共享的,几乎所有的对象实例都在这里分配内存;

五、方法区(Methed Area)

用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译后的代码等数据。

相关推荐
Q741_1474 分钟前
Linux 进程核心解析 fork()详解 多进程的创建与回收 C++
linux·c++·面试·笔试·进程
miss_you121310 分钟前
结算模块设计
java
派大鑫wink11 分钟前
【Day1】Java 入门:开发环境搭建(JDK 安装 + IDEA 配置 + HelloWorld 实战)
java·开发语言·intellij-idea
magic_kid_201013 分钟前
IDEA 中 Maven 多模块项目的某个模块未显示或无法导入的解决方案
java·maven·intellij-idea
LSL666_14 分钟前
1 验证码
java·服务器·前端·redis·验证码
wniuniu_15 分钟前
ceph中的crush map
java·运维·ceph
SunnyDays101119 分钟前
Java 实现 RTF 转 Word:完整技术指南
java·rtf转word
博风19 分钟前
飞书知识库备份
java·飞书
晴天sir20 分钟前
关于使用poi-tl读取本地图片,转为base64编码批量插入word的解决方法
java·exception·poi-tl
牛客企业服务22 分钟前
AI面试:如何从概念真正落地?
人工智能·面试·职场和发展