千家信息网

怎么理解Java 执行过程中的内存模型变化

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天就跟大家聊聊有关怎么理解Java 执行过程中的内存模型变化,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。主要工作:尝试以时间顺序追踪一遍
千家信息网最后更新 2026年11月01日怎么理解Java 执行过程中的内存模型变化

今天就跟大家聊聊有关怎么理解Java 执行过程中的内存模型变化,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

主要工作:尝试以时间顺序追踪一遍 Java 执行的整个过程,以及展示 JVM 中内存模型的相应变化。

主要目的:希望能够通过 Java 执行过程的冰山一角,增进对编程语言工作原理的理解。

以下面这段代码为例,追踪它的执行过程:

public class Car {
private int speed;

public void setSpeed(int speed) {
this.speed = speed;
}

public void getSpeed() {
System.out.println(speed);
}

public static void main(String[] args) {
Car car = new Car();
car.setSpeed(3);
car.getSpeed();
}
}
二、执行过程

接下来是具体的执行过程,总共包含五个步骤:编译、加载、执行 main 方法、执行成员方法、方法返回。

Step1:编译

首先,在我们完成上述这段源码之后,要想让程序跑起来,我们需要将其编译成为字节码文件。字节码是一种跨平台的JVM机器语言,它能够被JVM所解析,而无关底层的操作系统。

Step2:加载

当代码需要被调用时,JVM 会加载目标字节码至方法区,并转化为方法区的运行时数据结构,这里的加载过程是通过类加载器完成的。然后内存中(不一定是堆)会生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据结构的访问入口。

Step3:执行 main 方法

main 方法可以通过 java.lang.Class 对象进行调用,参考如下代码:

Method method = targetClass.getDeclareMethod("main", String[].class);
method.invoke(null, (Object) new String[0]);

之后 PC 寄存器将会指向方法区中的 main 函数地址,线程栈中会生成对应的栈桢,其主要用于存放当前方法的局部变量表、操作栈、以及方法返回地址。接下来,PC 寄存器向后地址偏移,执行引擎开始执行 main 方法体。当语句 Car car = new Car() 执行完毕,栈桢与堆中的相应变化如下:

Step4:执行成员方法

对象 car 的 setSpeed 方法调用过程和 main 类似,通过索引 car 的成员方法地址,PC寄存器将指向方法区中的 setSpeed 函数地址,同时线程栈中将产生新的栈桢,其中的方法返回地址用于保存原有 PC 地址偏移。当赋值语句 this.speed = speed 执行完毕,栈桢与堆中发生的相应变化如下:

Step5:方法返回

随着 setSpeed 方法的执行结束,Stack 中的相应栈桢出栈,栈顶指针重新指向 main 栈桢。同时 PC 寄存器将根据方法返回地址进行还原,从而继续执行 main 的方法体。当 main 方法也执行完毕出栈后,主线程与虚拟机实例销亡,程序结束。

虚拟机或某一门程序语言,作为一种底层实现,可以满足上层用户的绝大部分需求,但是需求是与时俱进的,总有一天用户需要编写自己的底层实现,比如组件、框架、一门新语言。这时需要打开原有的规范,先破坏它,再重建它,从而定义自己的规范。这也许是我们需要探究底层的缘由之一吧。

看完上述内容,你们对怎么理解Java 执行过程中的内存模型变化有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

方法 过程 地址 变化 内存 寄存器 底层 模型 代码 内容 字节 对象 成员 指向 程序 线程 语言 编译 接下来 函数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 广州万易互联网科技有限公司 北京路客互联网科技有限公司 深圳恒合互联网络科技有限公司 港股互联网科技股 中资互联网科技 上海挚品互联网科技 友谊互联网络科技 猫创互联网科技 长亮科技互联网金融 中正互联网科技招聘 现代科技和互联网有关系吗 上海宁丞科技互联网 速维有品互联网信息科技(苏州)有限公司 科技类公司包括互联网吗 玉溪新华互联网科技好不好 工业互联网等科技实现智能化赋能 珠海东科互联网科技有限公司 玉溪新华互联网科技怎么选 前海云享互联网科技 工业互联网科技新基建 互联网最新的科技有限公司 佰商互联网科技有限公司 西藏七维空间互联网科技有限公司 互联网科技与管理 昊天互联网科技有限公司 启辰互联网科技 张家口科技产业互联网平台 互联网科技职业技能培训学校 科技和互联网行业的特点
0