java - void 方法是如何从调用堆栈中弹出的?
问题描述
这似乎是一个愚蠢的问题。我尝试了不同的资源来了解 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;
}
解决方案
来自The Java® Virtual Machine Specification-Java SE 8 Edition [2.11.8]:
...返回指令用于从声明为 void 的方法、实例初始化方法以及类或接口初始化方法返回。
因此,以下两种方法的字节码是相同的(从BCV来看),即一条return
指令:
public void test() {
return;
}
public void test() {
}
推荐阅读
- swift - How do I bridge objc typedef NSString to Swift as String?
- php - 如何在没有 Homestead 的情况下为 Laravel 项目提供服务?
- java - 按 Ctrl+A 正在更改 JTextPane 中的字体
- c - 用户输入的正奇数值小于 20 的 C 中的钻石打印
- android - android中挂起的线程是什么意思?
- javascript - 在完整日历中显示带有日期和时间的事件
- java - Firebase 助手错误:无法解决:firebase-messaging-15.0.0
- java - 在 Spring 中使用 Thymeleaf 获取表单数据时如何禁用空格修剪
- python - 使用集合(列表)理解的对称集合差异未给出预期结果
- javascript - 为什么循环不在定义的停止点停止?