国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

幾分鐘理解 Jdk - Reference

JohnLui / 1089人閱讀

摘要:一個對象是否有虛引用的存在,完全不會對其生存時間構成影響,也無法通過虛引用來取得一個對象實例。為一個對象設置虛引用關聯的唯一目的就是能在這個對象被垃圾收集器回收時收到一個系統通知。在之后提供了類來實現虛引用參考深入理解虛擬機

GC

$TODO$

一個對象的生命周期

一個對象的生命周期從它被創建開始,此時虛擬機會給它置一個內部標識finalizable,當 GC 到達某一個安全點并檢驗該對象不可達,即無引用指向它時,該對象會被放入一個 finalize queue(F queue),虛擬機將會執行其 finalize() 方法,并將 finalizable 標識清空,然后銷毀該對象,其中 finalize() 方法的執行順序是不穩定的,而且只能被執行一次

也就是說,如果在 finalize() 中采取某些方法,將有可能將對象從死亡邊緣挽救回來,如果令一個引用指向 this,該對象很可能會在這次 GC 中復活,但只有一次

通常來說,不建議重寫此方法

引用分類

Java 中,引用可以分為四種,下面我們簡單地概括一下,其中,內存溢出之前指百分之九十八的 GC 回收了百分之二的內存

|引用|回收策略
|:-: |:-: |
|強引用|無引用指向時|
|軟引用|內存溢出之前|
|弱引用|無比弱引用更強的引用指向時|

虛引用并沒在上表,因為我也不清楚它地用途所在

以下為摘錄自 《深入理解Java虛擬機》 中關于引用的內容:

在jdk1.2之后,Java對引用的概念進行了擴充,將引用分為強引用(Strong Reference)、軟引用(Soft Reference)、弱引用(Weak Reference)、虛引用(Phantom Reference)四種:

強引用就是指在程序代碼之中普遍存在的,類似Object obj = new Object()這類的引用,只要強引用還存在,垃圾收集器永遠不會回收掉被引用的對象

軟引用是用來描述一些還有用但并非必需的對象。對于軟引用關聯著的對象,在系統將要發生 內存溢出異常之前,將會把這些對象列進回收范圍之中進行第二次回收。在jdk1.2之后提供了 SoftReference

類來實現軟引用

弱引用也是用來描述非必需對象的,但是它的強度比軟引用更弱一些,被弱引用關聯的對象只能生存到下一次垃圾收集發送之前。當垃圾收集器工作時,無論內存是否足夠,都會回收掉 只被弱引用關聯的對象。在jdk1.2之后提供了 WeakReference 類來實現弱引用

虛引用也稱為幽靈引用或者幻影引用,它是最弱的一種引用關系。一個對象是否有虛引用的存在,完全不會對其生存時間構成影響,也無法通過虛引用來取得一個對象實例。為一個對象設置虛引用關聯的唯一目的就是能在這個對象被垃圾收集器回收時收到一個系統通知。在jdk1.2之后提供了 PhantomReference 類來實現虛引用

Reference

$TODO$

ReferenceQueue

$TODO$

參考

1. 《深入理解Java虛擬機》

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67539.html

相關文章

  • 分鐘理解 Jdk - ==,hashCode() 與 equals()

    摘要:小概與,這三個操作在程序當中滿地都是,特別是容器里,如中的哈希映射與搜索元素就是根據和判斷的,所以如何正確的理解和使用顯得非常重要,并且在封裝類的時候,十分建議通通重寫我們先要知道這個概念,每個線程都有屬于自己的虛擬機棧,虛擬機棧中的元素我 小概 ==,hashCode() 與 equals() ,這三個操作在 Java 程序當中滿地都是,特別是容器里,如 Map 中的哈希映射與搜索元...

    CNZPH 評論0 收藏0
  • jvm垃圾回收三部曲

    摘要:強引用中最常見的引用,引用計數算法的就是典型的強引用,只要強引用還存在,垃圾收集器永遠不會回收掉被引用的對象。 概述 早在半個世紀以前,第一個使用了內存動態分配和垃圾收集技術的語言Lisp就已經誕生了,從那時,人們就在思考關于gc需要完成的三件事請: 哪些內存需要回收 什么時候回收 如何回收 直到今天已經有越來越多的語言開始內置內存動態分配和垃圾收集技術。經過長時間的發展,這些技術...

    wanghui 評論0 收藏0
  • 《深入理解java虛擬機》學習筆記系列——垃圾收集器&內存分配策略

    摘要:虛擬機所處的區域,則表示它是屬于新生代收集器還是老年代收集器。虛擬機總共運行了分鐘,其中垃圾收集花掉分鐘,那么吞吐量就是。收集器線程所占用的數量為。 本文主要從GC(垃圾回收)的角度試著對jvm中的內存分配策略與相應的垃圾收集器做一個介紹。 注:還是老規矩,本著能畫圖就不BB原則,盡量將各知識點通過思維導圖或者其他模型圖的方式進行說明。文字僅記錄額外的思考與心得,以及其他特殊情況 內存...

    calx 評論0 收藏0
  • 還在用Synchronized?Atomic你了解不?

    摘要:失敗重試自旋比如說,我上面用了個線程,對值進行加。我們都知道如果在線程安全的情況下,這個值最終的結果一定是為的。那就意味著每個線程都會對這個值實質地進行加。 前言 只有光頭才能變強 之前已經寫過多線程相關的文章了,有興趣的同學可以去了解一下: https://github.com/ZhongFuCheng3y/3y/blob/master/src/thread.md showImg(h...

    陳江龍 評論0 收藏0
  • Java中的四種引用(強引用、軟引用、弱引用、虛引用)

    摘要:在之后,對引用的概念進行了擴充,將引用分為強引用軟引用弱引用虛引用種,這種引用強度依次逐漸減弱。軟引用是用來描述一些還有用但并非必需的對象。虛引用也稱為幽靈引用或者幻影引用,它是最弱的一種引用關系。 以下內容摘自《深入理解Java虛擬機 JVM高級特性與最佳實踐》第2版,強烈推薦沒有看過的同學閱讀,讀完的感覺就是原來學的都是些什么瘠薄東西(╯‵□′)╯︵┴─┴ 在JDK1.2以前,Ja...

    wwolf 評論0 收藏0

發表評論

0條評論

JohnLui

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<