国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java 的 finalize()用途何在

2019-11-18 13:21:05
字體:
來源:轉載
供稿:網友

  此時,大家可能已相信了自己應該將finalize()作為一種常規用途的清除方法使用。它有什么好處呢?
  要記住的第三個重點是:
  
  垃圾收集只跟內存有關!
  
  也就是說,垃圾收集器存在的唯一原因是為了回收程序不再使用的內存。所以對于與垃圾收集有關的任何活動來說,其中最值得注重的是finalize()方法,它們也必須同內存以及它的回收有關。
  但這是否意味著假如對象包含了其他對象,finalize()就應該明確釋放那些對象呢?答案是否定的——垃圾收集器會負責釋放所有對象占據的內存,無論這些對象是如何創建的。它將對finalize()的需求限制到非凡的情況。在這種情況下,我們的對象可采用與創建對象時不同的方法分配一些存儲空間。但大家或許會注重到,java中的所有東西都是對象,所以這到底是怎么一回事呢?
  之所以要使用finalize(),看起來似乎是由于有時需要采取與Java的普通方法不同的一種方法,通過分配內存來做一些具有C風格的事情。這主要可以通過“固有方法”來進行,它是從Java里調用非Java方法的一種方式(固有方法的問題在附錄A討論)。C和C++是目前唯一獲得固有方法支持的語言。但由于它們能調用通過其他語言編寫的子程序,所以能夠有效地調用任何東西。在非Java代碼內部,也許能調用C的malloc()系列函數,用它分配存儲空間。而且除非調用了free(),否則存儲空間不會得到釋放,從而造成內存“漏洞”的出現。當然,free()是一個C和C++函數,所以我們需要在finalize()內部的一個固有方法中調用它。
  讀完上述文字后,大家或許已弄清楚了自己不必過多地使用finalize()。這個思想是正確的;它并不是進行普通清除工作的理想場所。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天全县| 出国| 郯城县| 垫江县| 当涂县| 洱源县| 伊金霍洛旗| 昂仁县| 临夏县| 新巴尔虎右旗| 车致| 永胜县| 清远市| 鹿泉市| 民丰县| 休宁县| 祁东县| 博湖县| 苏尼特右旗| 白水县| 特克斯县| 嘉定区| 红原县| 犍为县| 白朗县| 潜江市| 蒙山县| 大田县| 宾阳县| 东乌珠穆沁旗| 布拖县| 平阴县| 成安县| 长葛市| 固安县| 襄汾县| 永定县| 襄樊市| 黎平县| 三穗县| 马边|