㈢ 构造方法图解
1.操作数栈初始为空,执行0:aload_0指令,局部变量表的当前方法所属对象的引用(this) 复制到操作数栈的栈顶。实例对象保存在java堆,方法引用指向非堆方法区。
2.执行1:invokespecial #1指令,调用父类的初始化方法。父类初始化方法会在当前栈帧上添加一层新的栈帧。父类初始化方法执行完毕后,其对应栈帧销毁。
3.执行4:return指令返回,当前对象实例化完成,当前栈帧销毁。
㈣ main方法图解
为更清楚地看到操作数栈、局部变量表及栈帧的变化,以main方法为例进行描述。