Java連載64-finally語法及其注意事項

1、finally語句塊java

1.注意點:node

(1)finally語句塊能夠直接和try語句塊聯合使用。try...finally....git

(2)try.....catch.....finally也能夠執行;github

(3)在finally語句塊中的代碼是必定會執行的。微信

 

package com.bjpowernode.java_learning;

import java.io.*;

​

public class D64_1_ {

  public static void main(String[] args) throws FileNotFoundException{

    try {

      System.out.println("ABC");

    }finally {

      System.out.println("jdfoaij");

    }

   

    try {

//      System.exit(0);//這句話表明退出Java虛擬機

      FileInputStream f1 = new FileInputStream("jfdioa");

      //下面這個語句不會執行

      System.out.println("ABC");

    }finally {

      //不管try裏面的語句是否報錯,下面的語句都會執行

      System.out.println("jfaio");

     

    }

  }

​

}

2.深刻finally語句塊函數

 

public class D64_1_ {

  public static void main(String[] args) throws FileNotFoundException{

    int i = m1();

    System.out.println(i);

 

  }

  public static int m1() {

    int i = 10;

    try {

      return i;

    }finally {

      i++;

      System.out.println("m1的i=" + i);//11

    }

    /*

     * 以上代碼的執行原理,

     * int i = 10;

     * trt{

     *   int temp = i;

     *   return temp;

     * }finally{

     *   i++;

     *   System.out.println("m1的i=" + i);//11

     * }

     */

  }

}

3.fianlly語句塊是必定會執行的,因此一般在程序中,爲了保證某個資源必定會被釋放,因此通常會在finally語句塊中中釋放資源。學習

 

package com.bjpowernode.java_learning;

import java.io.*;

​

public class D64_1_ {

  public static void main(String[] args) throws FileNotFoundException{

    FileInputStream f2 = null;

    try {

      f2 = new FileInputStream("jfoda");

    }catch(FileNotFoundException e){

      e.printStackTrace();

    }finally {

      if(f2 != null) {

        try {

          f2.close();

        }catch(IOException e) {

          e.printStackTrace();

        }

​

      }

    }

  }

}

2、final、finalize和finally之間的區別大數據

final是一個Java關鍵字,用它來修飾的變量,不能夠重複在被賦值;用它來修飾的成員函數,不能夠從新被覆蓋。ui

finalize()是Object中的方法,在垃圾回收以前會自動調用這個方法​。spa

finally是異常處理機制的一個語法結構。

三者其實沒有什麼聯繫,是不相同的​語法。

3、源碼:

D64_1_FinallySentenceBlock.java​

https://github.com/ruigege66/Java/blob/master/D64_1_FinallySentenceBlock.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料

 

相關文章
相關標籤/搜索