2
void fun() {
    // some code
    synchronized (this) {
        if(condition) {
            return;
        }
        // some code
    }
    // some code
}

このreturn呼び出しはメソッドから戻るかfun、それともsynchronizedブロックから戻るか?

4

3 に答える 3

3

returnsynchronizedブロック内では、最初に保持されているモニターを解放し(this例では)、メソッドを終了します。

于 2012-12-21T10:02:35.620 に答える
2

return は関数を終了します。return の呼び出しは、常に関数を終了します。関数を終了する前に finally ブロックが実行される try finally を除きます。

于 2012-12-21T09:59:21.477 に答える
1
  1. 関数 fun() からのみ戻ります。どのブロックにも return ステートメントはありません。for ループ ブロックには break を指定できますが、return は指定できません。
  2. また、ブロックには戻り値の型がないため、そこからどのように戻ることができるので、戻り値の型があるため、関数から値を返すことができるのはあなただけです。
于 2012-12-21T10:00:33.690 に答える