最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

java入門教程-Java中final,finally,finalize三個關(guān)鍵字的區(qū)別

2018-10-22 09:31 作者:動力節(jié)點  | 我要投稿


  final


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


  finally


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


  finalize


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


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


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


  


java入門教程-Java中final,finally,finalize三個關(guān)鍵字的區(qū)別的評論 (共 條)

分享到微博請遵守國家法律
南雄市| 莲花县| 会同县| 额尔古纳市| 大安市| 丹巴县| 海丰县| 突泉县| 龙州县| 临夏市| 河北省| 宁夏| 清原| 年辖:市辖区| 陆良县| 阜阳市| 洛南县| 志丹县| 白沙| 呼图壁县| 都兰县| 肥东县| 宽城| 夏邑县| 宁乡县| 海宁市| 景德镇市| 永吉县| 龙山县| 卢龙县| 赞皇县| 新疆| 隆子县| 鸡西市| 神农架林区| 昭苏县| 湖南省| 射阳县| 丁青县| 泽库县| 射阳县|