Java中的final,finally和finalize的區別

1. final

final用於聲明屬性,方法和類。如果一個類被聲明爲final,意味着它不能再派生出新的子類,不能作爲父類被繼承。所以一個類不能既被abstract修飾又被final修飾。將變量和方法聲明爲final,可以保證他們在使用中不被改變。被聲明爲final的變量,只能在new的時候的初始化,而在以後的引用中只能讀取,不可修改。引用變量被final修飾以後,不能再指向其他對象但是所指向的對象中的內容還是可以改變的。被聲明爲final的方法同樣只能使用,不能覆蓋(重寫)。

2. finally

在異常處理時提供finally塊來執行任何清除操作。不管在異常處理時執行的是try語句塊還是catch語句塊,finall語句塊最後必然會執行。

3. finalize

finalize是Object類的一個方法。Java允許使用finalize方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。因爲他是在Object中定義的,所以所有的類都繼承了它。子類覆蓋finalize方法以整理系統資源和執行其他清理工作。finalize是在垃圾收集器刪除對象之前調用的。但對於finalize有非常重要的一點需要注意:finalize方法並不能保證可以被jvm執行完畢,所以一般不會使用finalize方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章