Java 使用返回函数的低层分析

Java 使用返回函数的低层分析,java,Java,在Java中,当您使用返回时,在低级别上会发生什么语句,而不是让函数通过到达其末端而结束?有什么区别吗 例如,可能存在一些逻辑差异(和编译时ISSE),例如 public void foo() { if (true) { return; } doSomething(); } 在这一点上,我们永远不会执行doSomething()。然而,这不是我所说的。我说的是: public void foo1() { doSomething(); re

在Java中,当您使用
返回时,在低级别上会发生什么void
函数中的code>语句,而不是让函数通过到达其末端而结束?有什么区别吗

例如,可能存在一些逻辑差异(和编译时ISSE),例如

public void foo() {
    if (true) {
        return;
    }
    doSomething();
}
在这一点上,我们永远不会执行
doSomething()
。然而,这不是我所说的。我说的是:

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

在机器级别处理这一问题的方式有什么不同吗?

指的是这一点
任何声明为void的方法都不会返回值
向此类方法添加“return”语句是可选的
“return”语句的唯一目的只是从控制流块中分支并退出该方法

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

所以,

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

在技术上是相同的。

指的是这个
任何声明为void的方法都不会返回值
向此类方法添加“return”语句是可选的
“return”语句的唯一目的只是从控制流块中分支并退出该方法

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

所以,

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


在技术上是相同的。

在Intellijb中显示的
foo1
foo2
的字节码是相同的
foo1
foo2
在Intellijb中显示的字节码是相同的