Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaのメソッドのreturnステートメントの後にfinallyブロックが実行されますか?


はい、finallyブロックは、メソッドのreturnステートメントの後でも実行されます。

最後にブロック Javaで例外が発生したかどうかにかかわらず、常に実行されます。 System.exit()を呼び出す場合 finallyブロックで明示的にメソッド そうすればそれだけは実行されません。 JVMクラッシュのようにfinallyが実行されない状況はほとんどありません。 、停電ソフトウェアのクラッシュ など。これらの条件以外に、最終的にブロック 常に実行されます。

public class FinallyBlockAfterReturnTest {
   public static void main(String[] args) {
      System.out.println(count());
   }
   public static int count() {
      try {
         return 1;
      } catch(Exception e) {
         return 2;
      } finally {
         System.out.println("Finally block will execute even after a return statement in a method");
      }
   }
}
出力
Finally block will always excute even after a return statement in a method
1

  1. Javaの同時実行性– yield()メソッド

    歩留まり関数 この関数は、実行に時間がかかりすぎて重要ではないスレッドではなく、より重要なスレッドが最初に実行されるようにします。 スレッドがjava.lang.Thread.yieldメソッドを呼び出すとき、それはスレッドスケジューラがその実行を一時停止することを示します。スレッドスケジューラは、この指示を受け入れるか無視するかを選択します。 スレッドが「yield」関数を実行する場合、スケジューラーは、同じかそれ以上の優先順位を持つスレッドが存在するかどうかを確認します。その場合、現在のスレッドは実行可能または準備完了状態に移行し、そのスレッドにはプロセッサリソースが与えられます。

  2. Java 9でのdestroyForcibly()メソッドの重要性?

    destroyForcibly() メソッドを使用してプロセスを強制終了できます 。プロセスが終了またはフリーズした場合に必要になります。たとえば、 isAlive() destroyForcibly()の後にメソッドはtrueを返します と呼ばれます。 destroyForcibly() メソッドは、終了が正常に要求された場合はtrueを返し、それ以外の場合はfalseを返します。 構文 boolean destroyForcibly() 以下の例では、メモ帳を起動できます。 アプリケーションであり、 destroyForcibly()の後に終了します メソッドが呼び出されました。 例