摘要:強引用如果一個對象具有強引用垃圾回收器絕不會回收它當內存空間不足時虛擬機寧愿拋出錯誤使程序異常終止也不會靠隨意回收具有強引用的對象來解決內存不足問題軟引用如果內存空間充足垃圾回收器就不會回收它如果內存空間不足就會回收這些對象的內存只要垃圾回
強引用
如果一個對象具有強引用,垃圾回收器絕不會回收它.當內存空間不足時,java虛擬機寧愿拋出OutOfMemoryError錯誤,使程序異常終止,也不會靠隨意回收具有強引用的對象來解決內存不足問題.
軟引用 SoftReference如果內存空間充足,垃圾回收器就不會回收它;如果內存空間不足,就會回收這些對象的內存.只要垃圾回收器沒有回收它,該對象就可以繼續被應用程序使用.軟引用可以實現內存敏感的高速緩存.
弱引用 Weakreference只具有弱引用的對象具有更短的生命周期.在垃圾回收器線程掃描它所管轄的內存區域的過程中,一旦發現了只具有弱引用的對象,不管當前內存空間足夠與否,都會回收它的內存.不過,垃圾回收器是一個優先級很低對的線程,因此不一定會很快發現那些只具有弱引用的對象.
虛引用 PhantomReference虛引用并不會決定對象的生命周期.如果一個對象僅持有虛引用,那么他就和沒有任何引用一樣,在任何時候都可能被回收.
引用隊列 ReferenceQueue引用隊列可以和軟引用,弱引用和虛引用聯合使用.并且虛引用必須和引用隊列聯合使用.如果軟引用(弱引用或者虛引用)所引用的對象被垃圾回收,java虛擬機就會把這個引用加入到與之關聯的引用隊列中.
String reference = "hello"; //引用隊列 ReferenceQueuequeue = new ReferenceQueue<>(); //弱引用 WeakReference softReference = new WeakReference (reference,queue); reference = null; //取出弱引用持有的String對象 String str = softReference.get(); //取出引用隊列中保存的引用對象 Reference extends String> poll = queue.poll();
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77418.html
摘要:虛引用與軟引用和弱引用的一個區別在于虛引用必須和引用隊列聯合使用。 本文已同步至個人博客liaosis blog 在Java中是由JVM負責內存的分配和回收,這是它的優點(簡化編程者的工作,不需要像C語言那樣去手動操作內存),但同時也是它的缺點(不夠靈活,垃圾回收對于編程者來說是不可控的)。 在JDK1.2以前,如果一個對象不被任何變量引用,則程序無法再次使用這個對象,這個對象最終會...
摘要:簡單來說就是引用和引用隊列關聯起來引用的構造函數傳入隊列,然后引用被回收的時候會被添加到隊列中,然后使用方法可以返回引用。 引語: ????我們知道java相比C,C++中沒有令人頭痛的指針,但是卻有和指針作用相似的引用對象(Reference),就是常說的引用,比如,Object obj = new Object();這個obj就是引用,它指向的是真正的對象Object的地址,不過今...
摘要:面試總結最近兩周面試了幾家公司高級工程師的職位,主要有宜信網信金融阿里高德口袋購物。目前有部分公司已經面試通過,兩家在等消息。今天趁熱把常見面試內容總結一下。可以用來完成統一命名服務狀態同步服務集群管理分布式應用配置項等管理工作。 面試總結 最近兩周面試了幾家公司Java高級工程師的職位,主要有宜信、網信金融、阿里高德、口袋購物。目前有部分公司已經面試通過,兩家在等消息。今天趁熱把常見...
閱讀 970·2023-04-25 23:55
閱讀 2691·2023-04-25 14:13
閱讀 3286·2019-08-26 13:47
閱讀 2957·2019-08-23 18:16
閱讀 618·2019-08-23 17:20
閱讀 3217·2019-08-23 16:55
閱讀 3136·2019-08-22 15:39
閱讀 3184·2019-08-20 18:10