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

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

Java垃圾回收機制分析

2019-11-14 23:03:32
字體:
來源:轉載
供稿:網友
java垃圾回收機制分析

Java的堆是一個運行時數據區,類的實例從中分配空間,堆中存儲著正在運行的應用程序所建立的所有對象。垃圾回收是一種動態存儲管理技術。它按照特定的垃圾回收算法,自動釋放掉不再被引用的對象。堆內存里垃圾的回收靠的是垃圾收集器。JVM規范并不需要特殊的垃圾回收技術,但是由于內存有限,JVM在實現的時候,都有一個被垃圾收集器管理的堆。

引用內存記錄碎片在堆內存中,被引用的對象處于存活狀態,一旦堆內存中的對象不再被引用,那這些對象就成了垃圾。垃圾收集器就會查找并釋放掉這些對象所占用的內存空間。除了釋放內存空間以外,垃圾收集器還會清楚內存記錄碎片。這些碎片是在創建對象和釋放對象所占用的空間的時候所產生的。垃圾處理器在處理碎片的時候會將碎片所占用的內存空間移動到堆內存的一端來分配給新的對象。

垃圾回收機制的優點:1.提高編程效率。垃圾回收機制會節省很多時間,不必花時間去解決存儲器問題。2.避免內存泄露

垃圾回收機制的缺點:1.垃圾收集器的開銷影響程序性能JVM必須追蹤運行程序中的所有對象,并且釋放掉垃圾所占的內存。這個過程會耗時2.垃圾收集器算法不完備,不能保證收集到所有垃圾

垃圾收集器判斷一個對象空間是否是垃圾的標準:對象不再被引用或者沒有被引用就視為垃圾

垃圾收集的過程是自動進行的,也可以使用System.gc()方法提醒JVM檢查有沒有要回收的對象。它不會明確指定讓JVM去回收哪個對象。垃圾收集是JVM上收線機最低的線程,調用這個方法一般也不會馬上進行垃圾收集。項目中能手動釋放的資源就手動釋放。一般close()方法的底層實現就是手動釋放。良好的編程習慣是,用完一個對象后,把這個對象的引用設為null值。

Java垃圾回收機制的工作特點:1.垃圾收集線程是低優先級的,但是如果內存占用太多,那垃圾收集線程可能會突發執行來釋放內存。垃圾收集不可以被強制執行,程序員可以通過System.gc()建議垃圾收集器執行2.不能保證垃圾一定會被收集3.可以將引用變量設為null值,來通知垃圾收集器收集。但是如果這個對象設有事件監聽器,那他還是不能被收集,所以在將引用變量設為空之前要把監聽去掉。4.每個對象都有一個finalize()方法,這個方法是從Object類繼承的。這個方法用來回收內存以外的系統資源,編程時這個方法的順序和方法執行的順序不相干。Java允許程序眼為任何一個對象添加這個方法,這個方法會在垃圾收集器收集這個對象之前被調用。但不要過分依賴這個方法對系統資源的回收,因為這個方法調用后的執行結果不可預知。5.當一個方法執行完畢,其中的局部變量就是消失,被垃圾收集器收集,以后如果再來調用這個方法,局部變量會重新創建。

Java垃圾收集機制:1.垃圾回收的時間隨機2.Java提供了一些用于垃圾收集的類,而且提供了建議垃圾回收的方法,但僅僅是建議3.垃圾收集器有多種,使用不同的算法實現4.通過把引用變量設為null值,盡早釋放無用對象。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 商丘市| 平潭县| 哈密市| 台湾省| 龙川县| 清远市| 义马市| 五指山市| 廉江市| 长乐市| 铜山县| 若羌县| 卫辉市| 临猗县| 贵南县| 通化县| 萝北县| 乌什县| 贡觉县| 宽城| 类乌齐县| 呼图壁县| 清苑县| 湘西| 河源市| 新野县| 九龙城区| 丹凤县| 长葛市| 沧源| 高淳县| 柯坪县| 分宜县| 合阳县| 无锡市| 交口县| 武清区| 额济纳旗| 亳州市| 新巴尔虎右旗| 碌曲县|