这可能是一个愚蠢的问题。我尝试了不同的资源来理解void方法如何从调用栈中弹出。我无法弄清楚,寻求帮助。提前感谢。 一个简单的例子 - public static void main(String args[]){ int sum = sum(2,3); System.out.println(sum); } public static int sum(int first, int second){ return first + second; } 因此,对于上述例子,调用堆栈将分配两个包含以下方法调用详细信息的堆栈帧 -
来自Java®虚拟机规范-Java SE 8版【2.11.8】: ……return指令用于从声明为void、实例初始化方法和类或接口初始化方法中返回。 因此,以下两种方法的字节码是相同的(使用BCV查看),即单个return指令: public void test() { return; } public void test() { }
return;
即可。它们仍然具有返回语句,只是隐式的。因此,它们以相同的方式从堆栈中弹出。 - Matthew S.return
指令。 - Sean Bright