最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單談談Java垃圾回收

 更新時間:2016年05月22日 12:27:06   作者:weixueyuan  
本文是看了James Gosling的<<Java程序設計語言>>后結合自己的一些項目經(jīng)驗,簡單總結下關于java的垃圾回收問題的看法,有需要的小伙伴可以參考下

好久沒看關于java的書了,最近,看了James Gosling的<<Java程序設計語言>>,做了一些讀書筆記。這部分是關于垃圾回收的。

一. 垃圾回收

對象是使用new創(chuàng)建的,但是并沒有與之相對應的delete操作來回收對象占用的內(nèi)存。當我們完成對某個對象的使用時,只需停止該對象的引用:

->將引用改變?yōu)橹赶蚱渌麑ο?br /> ->將引用指向null
->從方法中返回, 使得該方法的局部變量不復存在

要點:

->當我們從任何可執(zhí)行代碼都無法到達某個對象時,它所占用的空間就可以被回收。
->垃圾回收意味著我們永遠不用擔心出現(xiàn)虛懸引用(dangling reference)。虛懸引用,指得是引用已經(jīng)被刪除的內(nèi)存空間。在那些程序員可以直接控制何時刪除對象的系統(tǒng)中,會存在這樣的問題。
->垃圾回收器模型:引用計數(shù)器法(不能解決循環(huán)引用),標記-清除(mark-and-sweep)。

二. 總結

finalize方法

->在垃圾回收器確定該對象是不可達的且該對象的空間將被回收之后,垃圾回收器就會調(diào)用這個方法。
->這個方法可以清除該對象所使用的所有非內(nèi)存資源,對每一個對象最多只能調(diào)用一次,即使在這個方法的執(zhí)行使得該對象重新變?yōu)榭蛇_之后又馬上會再次變?yōu)椴豢蛇_的情況下,該方法也只能調(diào)用一次。
->finalize方法可以在任何特定的時間段內(nèi)被調(diào)用,它也可能永遠不會被調(diào)用(java虛擬機結束)。

覆寫finalize方法

->當一個對象變成垃圾時,它所引用的其他對象也很有可能會變成垃圾。這些垃圾可能在調(diào)用我們編寫的finalize方法之前就已經(jīng)被終結了,因此它們可能處于不可預知的狀態(tài)。
->覆寫finalize方法是,加上super.finalize方法。最好加在finally字句里面。保證其超類中聲明的部分內(nèi)容也可以被終結。

三. 與垃圾回收器交互的相關類和方法

類:Runtime.getRuntime(), System
方法:gc(), runFinalization(), freeMemory(), totalMemory(), maxMemory()
System類支持靜態(tài)的gc()和runFinalization()方法,它們將調(diào)用當前Runtime對象上的相應方法。

四. 可達性狀態(tài)和引用對象

對象只有在沒有任何引用指定它的時候才可以被當作垃圾回收,但有時我們可能希望在仍舊有選定引用指向對象時,將該對象作為垃圾回收掉。

引用對象的唯一用途就是維護對另一個被稱為指稱物(referent)的對象的引用。通常我們通過字段或者局部變量來維護對對象的引用,但是現(xiàn)在我們可以維護對引用對象的直接引用,而該引用對象包裝了我們實際需要的對象。垃圾回收器可能判斷出對某個對象的殘留引用是否都是經(jīng)由引用對象面引用到該對象的,因此它可以決定是否要回收該對象。引用對象的強度將決定垃圾回收器的行為,普通的引用都是強度最大的引用。

Reference類

->包:java.lang.ref
->典型方法: get(), clear(), enqueue(), isEnqueued()

引用和可達性強度

->對象是強可達的(strongly reachable):普通的引用
->對象是軟可達的(softly reachable):SoftReference
->對象是弱可達的(weakly reachable):WeakReference
->對象是虛可達的(phantom reachable):PhantomReference
->對象是不可達的:沒有引用鏈接
一旦對象變?yōu)槿蹩蛇_的(或者列弱),它就可以被終結。如果在終結之后該對象是不可達的,那么它就可以被回收了。

對象可達性階段會觸發(fā)垃圾回收器對相關的引用對象類型做出適當?shù)男袨椋?br />

->軟可達對象可能會任憑垃圾回收器去回收。我們可確定的是所有對軟可達對象的SoftReference都會在拋出outofMemoryError錯誤這前被清除。
->弱可達對象將會被垃圾回收器回收。
->虛可達對象并不是真正意義上的可達,因為無法通過PhantomReference訪問其指稱對象,其get方法總是返回null。但是虛引用的存在可以防止對象在顯式清除虛引用之前被回收。虛引用使我們可以處理那些finalize方法已經(jīng)被調(diào)用過的對象,從而可以安全地認為它們是"死"的。

相關文章

  • java中ThreadLocal取不到值的兩種原因

    java中ThreadLocal取不到值的兩種原因

    這篇文章主要介紹了java中ThreadLocal取不到值的兩種原因,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • SpringMVC修改返回值類型后的消息轉換器處理方式

    SpringMVC修改返回值類型后的消息轉換器處理方式

    這篇文章主要介紹了SpringMVC修改返回值類型后的消息轉換器處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java數(shù)學類Math?BigInteger?BigDecimal使用介紹

    java數(shù)學類Math?BigInteger?BigDecimal使用介紹

    這篇文章主要為大家介紹了java數(shù)學類Math、BigInteger、BigDecimal的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • javaweb servlet中使用請求轉發(fā)亂碼的實現(xiàn)

    javaweb servlet中使用請求轉發(fā)亂碼的實現(xiàn)

    下面小編就為大家?guī)硪黄猨avaweb servlet中使用請求轉發(fā)亂碼的實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • web項目WEB-INF下沒有web.xml的解決方法

    web項目WEB-INF下沒有web.xml的解決方法

    新手如果在web項目創(chuàng)建后WEB-INF下面沒有出現(xiàn)web.xml,怎么辦?別慌,沒有web.xml文件的原因是因為在創(chuàng)建web項目的時候沒有把創(chuàng)建web.xml勾上。這篇文章主要介紹了web項目WEB-INF下沒有web.xml的解決方法,需要的朋友可以參考下
    2022-12-12
  • 基于Java回顧之JDBC的使用詳解

    基于Java回顧之JDBC的使用詳解

    本篇文章是對Java中JDBC的使用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Spring Boot集成Redis實現(xiàn)緩存機制(從零開始學Spring Boot)

    Spring Boot集成Redis實現(xiàn)緩存機制(從零開始學Spring Boot)

    這篇文章主要介紹了Spring Boot集成Redis實現(xiàn)緩存機制(從零開始學Spring Boot),需要的朋友可以參考下
    2017-04-04
  • SpringBoot實現(xiàn)kafka多源配置的示例代碼

    SpringBoot實現(xiàn)kafka多源配置的示例代碼

    實際開發(fā)中,不同的topic可能來自不同的集群,所以就需要配置不同的kafka數(shù)據(jù)源,基于springboot自動配置的思想,最終通過配置文件的配置,自動生成生產(chǎn)者及消費者的配置,本文介紹了SpringBoot實現(xiàn)kafka多源配置,需要的朋友可以參考下
    2024-06-06
  • 詳解RSA加密算法的原理與Java實現(xiàn)

    詳解RSA加密算法的原理與Java實現(xiàn)

    這篇文章主要和大家分享非對稱加密中的一種算法,那就是 RSA 加密算法。本文介紹了RSA算法的原理與Java實現(xiàn),感興趣的小伙伴可以嘗試一下
    2022-10-10
  • spring-cloud Sleuth的使用方法

    spring-cloud Sleuth的使用方法

    這篇文章主要介紹了spring-cloud Sleuth的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02

最新評論

凌海市| 普定县| 游戏| 上犹县| 沧州市| 石阡县| 图片| 镇远县| 平陆县| 湘乡市| 三河市| 含山县| 重庆市| 玉龙| 津南区| 平陆县| 长岭县| 高唐县| 罗甸县| 托克逊县| 淅川县| 淳化县| 班戈县| 墨玉县| 安宁市| 富源县| 嘉祥县| 河南省| 信丰县| 耿马| 通州市| 视频| 佳木斯市| 太湖县| 苍山县| 阳城县| 邯郸市| 漳浦县| 乾安县| 托里县| 揭东县|