在我的理解(根据https://www.javaworld.com/article/2076949/learn-java/how-the-java-virtual-machine-handles-method-invocation-and-return.html?page=2)时,JVM处理方法调用如下: 从呼叫者创建被叫 流行论点新的堆栈帧,把它们的被调用 执行被叫方。的Java方法调用堆栈复制
但是,为什么我们必须将参数从一个堆栈复制/移动到另一个?
为被调用者创建一个新的重叠栈帧是不是更容易,因此调用者的最上面的槽(包含参数)现在是被调用者栈帧的最底部槽。只要我们事后清理所有东西(通过弹出),它不应该有所作为,但可以通过避免复制来提高方法调用的效率。
那么,这是什么问题,为什么我们不这样做呢?