java弱引用的定義:只具有弱引用的對象擁有更短暫的生命周期。在垃圾回收器線程掃描它所管轄的內(nèi)存區(qū)域的過程中,一旦發(fā)現(xiàn)了只具有弱引用的對象,不管當(dāng)前內(nèi)存空間足夠與否,都會回收它的內(nèi)存
先讓一個對象同時有一個強引用和一個弱引用,此時進行垃圾回收不會回收弱引用
然后使強引用不再指向這個對象,所以這個對象就只剩下了一個弱引用,那么,如果我們再進行一次垃圾回收,就會回收這個對象的弱引用
結(jié)果如下
讓強引用指向別的對象,或者讓str對String對象的強引用超出作用域(例如創(chuàng)建個方法,讓創(chuàng)建對象的代碼在這個方法里執(zhí)行,main方法調(diào)用這個方法),都可以讓String對象的強引用消失
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75100.html
摘要:強引用如果一個對象具有強引用垃圾回收器絕不會回收它當(dāng)內(nèi)存空間不足時虛擬機寧愿拋出錯誤使程序異常終止也不會靠隨意回收具有強引用的對象來解決內(nèi)存不足問題軟引用如果內(nèi)存空間充足垃圾回收器就不會回收它如果內(nèi)存空間不足就會回收這些對象的內(nèi)存只要垃圾回 強引用 如果一個對象具有強引用,垃圾回收器絕不會回收它.當(dāng)內(nèi)存空間不足時,java虛擬機寧愿拋出OutOfMemoryError錯誤,使程序異常終...
摘要:在之后,對引用的概念進行了擴充,將引用分為強引用軟引用弱引用虛引用種,這種引用強度依次逐漸減弱。軟引用是用來描述一些還有用但并非必需的對象。虛引用也稱為幽靈引用或者幻影引用,它是最弱的一種引用關(guān)系。 以下內(nèi)容摘自《深入理解Java虛擬機 JVM高級特性與最佳實踐》第2版,強烈推薦沒有看過的同學(xué)閱讀,讀完的感覺就是原來學(xué)的都是些什么瘠薄東西(╯‵□′)╯︵┴─┴ 在JDK1.2以前,Ja...
摘要:為了使程序能更加靈活地控制對象的生命周期,從版本開始,把對象的引用級別分為了以下四種。如技術(shù)棧這就是強引用,持有了這個對象的存儲地址的引用。 showImg(https://segmentfault.com/img/remote/1460000015386749); 最近,高級Java技術(shù)棧微信群中,有一些猿友在討論JVM中對象的周期問題,有談到引用的級別,現(xiàn)在為大家做個總結(jié)吧,雖然大...
摘要:當(dāng)一個對象被一個或一個以上的引用變量所引用時,它處于可達狀態(tài),不可能被系統(tǒng)垃圾回收機制回收。虛引用主要用于跟蹤對象被垃圾回收的狀態(tài),虛引用不能單獨使用,虛引用必須和引用隊列聯(lián)合使用。 當(dāng)程序創(chuàng)建對象、數(shù)組等引用類型實體時,系統(tǒng)都會在堆內(nèi)存中為之分配一塊內(nèi)存區(qū),對象就保存在這塊內(nèi)存區(qū)中,當(dāng)這塊內(nèi)存不再被任何引用變量引用時,這塊內(nèi)存就變成垃圾,等待垃圾回收機制進行回收。垃圾回收機制具有如下...
摘要:弱引用與軟引用最大的區(qū)別就是弱引用比軟引用的生命周期更短暫。所以對于軟引用弱引用之類,垃圾收集器可能會存在二次確認的問題,以確保處于弱引用狀態(tài)的對象沒有改變?yōu)閺娨谩? 關(guān)于強引用、軟引用、弱引用、幻象引用的區(qū)別,在一些大公司的面試題中經(jīng)常出現(xiàn),可能有些小伙伴覺得這個知識點比較冷門,但其實大家在開發(fā)中經(jīng)常用到,如new一個對象的時候就是強引用的應(yīng)用。 在java語言中,除了原始數(shù)據(jù)類型(...
閱讀 844·2019-08-30 15:55
閱讀 1419·2019-08-30 13:55
閱讀 1996·2019-08-29 17:13
閱讀 2850·2019-08-29 15:42
閱讀 1340·2019-08-26 14:04
閱讀 1028·2019-08-26 13:31
閱讀 3279·2019-08-26 11:34
閱讀 841·2019-08-23 18:25