㈢ 构造方法图解

JVM内存结构图解 (三)_初始化方法

1.操作数栈初始为空,执行0:aload_0指令,局部变量表的当前方法所属对象的引用(this) 复制到操作数栈的栈顶。实例对象保存在java堆,方法引用指向非堆方法区。

2.执行1:invokespecial #1指令,调用父类的初始化方法。父类初始化方法会在当前栈帧上添加一层新的栈帧。父类初始化方法执行完毕后,其对应栈帧销毁。

3.执行4:return指令返回,当前对象实例化完成,当前栈帧销毁。


㈣ main方法图解


为更清楚地看到操作数栈、局部变量表及栈帧的变化,以main方法为例进行描述。


JVM内存结构图解 (三)_父类_02

JVM内存结构图解 (三)_操作数_03

JVM内存结构图解 (三)_初始化方法_04

JVM内存结构图解 (三)_父类_05