Java中的final、finally關(guān)鍵字用法匯總

Final

??若final修飾變量,那么該變量則無法再被賦值;若是final修飾的類,那么該類則無法派生出新的子類,同時也無法作為父類被繼承;若final定義了一個方法 ;那么該方法不能被重載和覆蓋。final關(guān)鍵字特點大致如上,其余不做贅述。

finally

??finally通常用于try catch語句塊中,完整的異常處理語句一般都有finally語句。無論有無異常發(fā)生,finally語句一定會被執(zhí)行。

今天在牛客網(wǎng)上看到一道題如下:
public  class Demo{
     public static void main(String arg[]){
       System.out.println(getNumber(0));
       System.out.println(getNumber(1));
       System.out.println(getNumber(2));
       System.out.println(getNumber(4));
      }
      public static int getNumber(int num){
           try{
               int result=2/num;
               return result;
           }catch(Exception exception){
               return 0;
           }finally{
              if(num==0){
                  return -1;
              }
              if(num==1){
                  return 1;
              }
          }
      }
}

答案為-1110.
return的作用是返回一個值并跳出該段代碼,然而finally是在try-catch中必定會執(zhí)行的語句塊。然而如果在finally中使用return,那么return會覆蓋try-catch中的return。補充一點,若finally中使用了throw語句,那么try-catch重throw也同樣失效。

至于答案最后一個0,因為2/4=0.5,而結(jié)果應(yīng)該為int型,所以丟失精度,返回為0。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容