日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

final、finally与fianalize的区别

發布時間:2024/1/18 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 final、finally与fianalize的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.簡單區別:

? ? ? ? final用于聲明屬性,方法和類,分別表示屬性不可改變(常量),方法不可覆蓋,類不可繼承。

? ? ? ?finally是異常處理語句結構的一部分,表示總是執行。

? ? ? ?finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,供垃圾收集 時的其他資源回收,例如關閉文件等。

?2.中等區別:

? ? ? ? ? 雖然這個單詞在Java中都存在,但是并沒太多關聯: final:java中的關鍵字,修飾符。

? ? ? ? ?A).如果一個類被聲明為final,就意味著它不能再派生出新的子類,不能作為父類被繼承。因此,一個 類不能同時被聲明為abstract抽象類的和final的類。

? ? ? ? B).如果將變量或者方法聲明為final,可以保證它們在使用中不被改變. 1)被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。 2)被聲明final的方法只能使用,不能重載。

? ? ? finally:java的一種異常處理機制。 finally是對Java異常處理模型的最佳補充。finally結構使代碼總會執行,而不管無異常發生。 使用finally可以維護對象的內部狀態,并可以清理非內存資源。特別是在關閉數據庫連接這方面,如 果程序員把數據庫連接的close()方法放到finally中,就會大大降低程序出錯的幾率。 finalize:Java中的一個方法名。 Java技術使用finalize()方法在垃圾收集器將對象從內存中清除出去前,做必要的清理工作。這個方 法是由垃圾收集器在確定這個對象沒被引用時對這個對象調用的。它是在Object類中定義的,因此所的 類都繼承了它。子類覆蓋finalize()方法以整理系統資源或者執行其他清理工作。finalize()方法是 在垃圾收集器刪除對象之前對這個對象調用的。

?3.詳細區別:

? ? ? ? ? ?final、 finally和finalize雖然長得像孿生兄弟一樣,但是它們的含義和用法卻是大相徑庭。 final關鍵字我們首先來說說final。

? ? ? ? ? 它可以用于以下四個地方:

1).定義變量,包括靜態的和非靜態的。

2).定義方法的參數。

3).定義方法。

4).定義類。 定義變量,包括靜態的和非靜態的。?

第一種情況: 如果final修飾的是一個基本類型,就表示這個變量被賦予的值是不可變的,即它是個常量; 如果final修飾的是一個對象,就表示這個變量被賦予的引用是不可變的 這里需要提醒大家注意的是,不可改變的只是這個變量所保存的引用,并不是這個引用所指向的對象。

第二種情況:final的含義與第一種情況相同。 實際上對于前兩種情況,一種更貼切的表述final的含義的描述,那就是,如果一個變量或方法參數被 final修飾,就表示它只能被賦值一次,但是JAVA虛擬機為變量設定的默認值不記作一次賦值。被 final修飾的變量必須被初始化。

初始化的方式以下幾種:

1.在定義的時候初始化。

2.final變量可以在初始化塊中初始化,不可以在靜態初始化塊中初始化。

3.靜態final變量可以在定義時初始化,也可以在靜態初始化塊中初始化,不可以在初始化塊中初始 化。

4.final變量還可以在類的構造器中初始化,但是靜態final變量不可以。

總結

以上是生活随笔為你收集整理的final、finally与fianalize的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。