創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)長期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為霍邱企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站建設(shè),霍邱網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。Reference對象封裝了其它對象的引用,可以和普通的對象一樣操作,在一定的限制條件下,支持和垃圾收集器的交互。即可以使用Reference對象來引用其它對象,但是最后還是會被垃圾收集器回收。程序有時候也需要在對象回收后被通知,以告知對象的可達性發(fā)生變更。
Java提供了四種不同類型的引用,引用級別從高到低分別為FinalReference,SoftReference,WeakReference,PhantomReference。其中FinalReference不對外提供使用。每種類型對應(yīng)著不同級別的可達性。
簡介
強引用FinalReference
強引用指的是,程序中有直接可達的引用,而不需要通過任何引用對象,如Object obj = new Object();中,obj為強引用。
軟引用SoftReference
軟引用,非強引用,但是可以通過軟引用對象來訪問。軟引用的對象,只有在內(nèi)存不足的時候(拋出OOM異常前),垃圾收集器會決定回收該軟引用所指向的對象。軟引用通常用于實現(xiàn)內(nèi)存敏感的緩存。
SoftReference
弱引用WeakReference
弱引用,非強引用和軟引用,但是可以通過弱引用對象來訪問。弱引用的對象,不管內(nèi)存是否足夠,只要被垃圾收集器發(fā)現(xiàn),該引用的對象就會被回收。實際的應(yīng)用見WeakHashMap等。
WeakReference
虛引用PhantomReference
虛引用,該引用必須和引用隊列(ReferenceQueue)一起使用,一般用于實現(xiàn)追蹤垃圾收集器的回收動作,比如在對象被回收的時候,會調(diào)用該對象的finalize方法,在使用虛引用可以實現(xiàn)該動作,也更加安全。
Object obj = new Object(); ReferenceQueuerefQueue = new ReferenceQueue<>(); PhantomReference phantom = new PhantomReference (obj, refQueue); ReferenceQueue