關於Java中對象的銷燬方法分析
本文較為詳細的分析了Java中對象的銷燬方法。分享給大家供大家參考。具體分析如下:
Java中的基本數據類型變量和對象的名稱引用變量如定義在方法中,都為局部變量。但對象本身不一定是局部生命週期。如函數外存在其他對該對象的引用變量,則該對象的生命週期延伸至該其他引用變量所在的塊。
如從被調用函數參數引用傳值或返回值到主調用函數所在的對象類型變量中,則該對象都仍存在(但被調用函數的.該對象的引用變量生命週期結束,因此引用變量是局部變量),此時對象突破了局部變量的局部生命期。
Java對象銷燬
Java中垃圾收集器自動地定期掃描Java對象的動態內存,並將所有的引用對象加上標記,在對象運行結束後(無引用變量對該對象進行關聯),清除其標記,並將所有無標記的對象作為垃圾進行回收,釋放垃圾對象所佔的內存空間。
對象運行結束後或生命週期結束時,將成為垃圾對象,但並不意味着就立即會被回收,僅當垃圾收集器空閒或內存不足時,才會回收他們。
Java中每個對象都擁有一個finalize()方法:
protected void finalize()throws Throwable{}
垃圾回收器在回收對象時自動調用對象的finalize()方法來釋放系統資源。
finalize()函數原型:
protected void finalize() Called by the garbage collector on an object when garbage
collection determines that there are no more references to
the object. 希望本文所述對大家的java程序設計有所幫助。
-
2017上半年計算機二級Java練習題及答案
計算機等級證書是我們找工作的敲門磚,現在越來越多人重視計算機等級考試。下面是本站小編為大家帶來的2017上半年計算機二級Java練習題及答案,希望對大家的學習有幫助!一、單選題1、結構化程序設計主要強調的是______。A、程序的規模B、程序的易讀性C、程序的執...
-
java的String=a; a==null和a.equals(null)這兩個判斷有什麼區別
1、String的==與equal()在對字符串的相等判斷,==判斷的是地址是否相同,equal()判斷的是字符值是否相同。大多數時候==跟equal()的結果都是相同的。這是因為String對象是不變模式的,如果你不是明確地new一個String對象,Java對於String對象的保存默認的是會把新生成...
-
Java基本元素詳解
生活呆以是甜的,也可以是苦的,但不能是沒味的。你可以勝利,也可以失敗,但你不能屈服,以下是小編為大家搜索整理了Java基本元素詳解,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!第二章基本元素第一章總結:一平台&JDK&JRE&JVM&A...
-
linux下執行java程序的sh腳本教程
文章主要介紹了linux下執行java程序的sh腳本,僅供參考,但是設置的時候環境變量是最重要的,我就是環境變量一直不對,總是按網上查到的來,不明白怎麼回事,才一直出錯,其實環境變量就是你要執行的java程序所在的位置。接下來是小編為大家收集的linux下執行java程序的sh腳...