真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中final、finally和finalize關(guān)鍵字有什么不同的地方

這篇文章給大家介紹Java中final、finally和finalize關(guān)鍵字有什么不同的地方,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

我們提供的服務(wù)有:成都網(wǎng)站制作、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、柳河ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的柳河網(wǎng)站制作公司

final

當這個關(guān)鍵字修飾一個類時,意味著他不能派生出新的子類,也就是說不能被繼承,因此一個類不能被同時聲明為abstract和final。當final修飾變量或者方法時,可以保證他們在使用中不會被改變。被聲明為final的變量必須在初始化時給定初值,以后在使用時只能被引用而不能被修改。同樣,當final修飾一個方法時,這個方法不能被重載。

finally

異常處理時提供finally來執(zhí)行任何清楚操作。如果拋出一個異常,那么相匹配的catch子句就會被執(zhí)行,然后控制就會轉(zhuǎn)入finally塊。

finalize

方法名。finalize方法在垃圾回收器執(zhí)行內(nèi)存對象清理時會調(diào)用finalize()方法進行前期的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的。

Java中所有類都從Object類中繼承finalize()方法。當垃圾回收器(garbage colector)決定回收某對象時,就會運行該對象的finalize()方法。值得C++程序員注意的是,finalize()方法并不能等同與析構(gòu)函數(shù)。Java中是沒有析構(gòu)函數(shù)的。C++的析構(gòu)函數(shù)是在對象消亡時運行的。由于C++沒有垃圾回收,對象空間手動回收,所以一旦對象用不到時,程序員就應(yīng)當把它delete()掉。所以析構(gòu)函數(shù)中經(jīng)常做一些文件保存之類的收尾工作。但是在Java中很不幸,如果內(nèi)存總是充足的,那么垃圾回收可能永遠不會進行,也就是說filalize()可能永遠不被執(zhí)行,顯然指望它做收尾工作是靠不住的。

那么finalize()究竟是做什么的呢?它最主要的用途是回收特殊渠道申請的內(nèi)存。Java程序有垃圾回收器,所以一般情況下內(nèi)存問題不用程序員操心。但有一種JNI(Java Native Interface)調(diào)用non-Java程序(C或C++),finalize()的工作就是回收這部分的內(nèi)存。

關(guān)于Java中final、finally和finalize關(guān)鍵字有什么不同的地方就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


網(wǎng)站標題:Java中final、finally和finalize關(guān)鍵字有什么不同的地方
網(wǎng)站URL:http://weahome.cn/article/jjohhh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部