【原创】JVM系列03 | Java栈—方法是如何调用的? - 云+社区
本文是何适 JVM 修仙系列第 3 篇,文末有本系列文章汇总。上一篇介绍 Java 虚拟机结构时讲到 Java 栈同 Java 方法的调用密切相关,那么这篇就来探究下 Java 栈到底和方法的调用有什么关系。Java 栈分如下几部分介绍:栈帧局部变量表操作数栈帧数据1. 栈帧 线程被创建的时候 Java 栈被创建,Java 栈中保存着栈帧。线程中方法被调用时,对应着一个栈帧被压入 Java 栈;方法返回时,对应的栈帧从 Java 栈中弹出;方法中抛出异常时,对应的栈帧也会将栈帧弹出。举例说明:方法 1 中调用方法 2,方法 2 中调用方法 3,方法 3 中调用方法 4,当执行到方法 4 时,栈内存结构如下图:举例模拟栈溢出:因为每次方法调用都会生成一个栈帧,当函数调用数量很大,生成的栈帧内存...阅读全文