JVM:四种引用总结
生活随笔
收集整理的這篇文章主要介紹了
JVM:四种引用总结
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在JVM的GC中,我們使用引用計(jì)數(shù)器算法和可達(dá)性分析算法來(lái)確定一個(gè)對(duì)象是否gg了!
這里都提到了引用!什么是引用?
其實(shí)引用就是一個(gè)內(nèi)存地址,它保存著另一個(gè)對(duì)象在內(nèi)存中的起始地址!
由于引用只有 被引用、沒(méi)有被引用 兩種狀態(tài)!
那么有一類現(xiàn)象:
內(nèi)存空間足夠的時(shí)候,我們希望引用的對(duì)象能夠保存,內(nèi)存緊張的時(shí)候,可以拋棄這些對(duì)象!
這個(gè)怎么搞????(軟引用)
因此擴(kuò)充引用概念!將引用分為:
強(qiáng)引用、軟引用、弱引用、虛引用?
強(qiáng)引用
類似于 Pojo a = new Pojo(); 只要強(qiáng)引用還存在就不會(huì)被回收!
軟引用
被軟引用關(guān)聯(lián)的對(duì)象,在內(nèi)存足夠時(shí)候,可以保留,內(nèi)存不夠的時(shí)候,就進(jìn)行回收。
弱引用
被弱引用關(guān)聯(lián)的對(duì)象,只能夠生存到下一次GC發(fā)生之前。
虛引用
一個(gè)對(duì)象是否有虛引用的存在不會(huì)影響其生存時(shí)間。也無(wú)法通過(guò)一個(gè)虛引用來(lái)獲取一個(gè)對(duì)象!!!但是設(shè)置虛引用可以使得對(duì)象被回收的時(shí)候會(huì)收到一個(gè)系統(tǒng)通知(類似于一個(gè)信號(hào)作用)
總結(jié)
以上是生活随笔為你收集整理的JVM:四种引用总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JVM:7种垃圾回收器总结
- 下一篇: Java集合:JDK7与JDK8中Has