java - 在 void 函数中使用 Return 的底层分析

标签 java

在 Java 中,当您在 void 函数中使用 return; 语句而不是让函数通过到达其末尾来结束时,会发生什么情况?有什么区别吗?

例如,可能存在一些逻辑差异(以及编译时间问题),例如

public void foo() {
    if (true) {
        return;
    }
    doSomething();
}

此时我们永远不会执行doSomething()。然而,这不是我所说的。我说的是:

public void foo1() {
    doSomething();
    return;
}

对比

public void foo2() {
    doSomething();
}

这与机器级别的处理方式有什么不同吗?

最佳答案

引用此Oracle doc.
任何声明为 void 的方法都不会返回值。
向此类方法添加“return”语句是可选的。
“return”语句的唯一目的是分支出控制流 block 并退出该方法。

public void foo1() {
    return;
    doSomething(); //compiler error.
}


因此,

public void foo1() {
    doSomething();
    return;
}

public void foo2() {
    doSomething();
}

技术上是相同的。

关于java - 在 void 函数中使用 Return 的底层分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42895228/

相关文章:

java - 在Java中的未排序整数数组中查找恰好出现一次的整数

java - 如何继承/替换java的final类?

java - Spring安全更改sessionid

java - 是否可以在 jsp 中根据条件设置页面内容类型或为单个 jsp 设置不同的内容类型

java - 将 csv 文件上传到服务器,然后从中读取

java - HTTP 服务器无法与浏览器一起使用

java - 抽象类上的 newInstance()?

java - 如何仅模拟函数的一部分

java - android应用程序和java之间的通信

java - 在顺序排序的流中查找丢失的整数