軟/弱/虛引用

https://www.jianshu.com/p/825cca41d962jvm

 

引用的本質是,能夠把jvm內存當作一個大的池化技術,池化技術最重要的是逐出策略。那麼,這三種引用對應的逐出策略是不同的,具體能夠看上面連接裏的介紹。簡單來講,強引用的逐出策略是,若是一個對象沒有了強引用,就逐出。軟引用是,若是沒有了強引用,gc是不會把這個對象逐出的,除非在gc後,仍然內存不夠用,這時會進行第二次gc,並把這些對象逐出。其餘倆個看上面的連接介紹。對象

 

引用對象的另外一個做用是,在jvm進行回收的時候,會進行回調通知,利用這個功能能夠實現一些有意思的事情,好比WeakReferenceMap. 具體實現能夠看WeakReference的實現和WeakReferenceMap的實現。 WeakReferenceMap其實也是池化技術的一種特殊場景,正常的是cache的對象自己的過時逐出,而WeakReferenceMap實現的是,key過時後,對value的逐出。內存

相關文章
相關標籤/搜索