本篇內(nèi)容介紹了“Java語言中的四種引用區(qū)別”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
本篇內(nèi)容介紹了“Java語言中的四種引用區(qū)別”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)于2013年成立,先為寧明等服務(wù)建站,寧明等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為寧明企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
四種引用的區(qū)別
其實(shí)四種引用的區(qū)別在于GC的時(shí)候,對它們的處理不同。用一句話來概括,就是:如果一個(gè)對象GC Root可達(dá),強(qiáng)引用不會(huì)被回收,軟引用在內(nèi)存不足時(shí)會(huì)被回收,弱引用在這個(gè)對象第一次GC會(huì)被回收。
如果GC Root不可達(dá),那不論什么引用,都會(huì)被回收
虛引用比較特殊,等于沒有引用,不會(huì)影響對象的生命周期,但可以在對象被收集器回收時(shí)收到一個(gè)系統(tǒng)通知。
下面結(jié)合案例分別來講一下四種引用在面對GC時(shí)的表現(xiàn)以及它們的常見用途。先設(shè)置一下JVM的參數(shù):-Xms20M -Xmx20M -Xmn10M -verbose:gc -XX:+PrintGCDetails
強(qiáng)引用
這就是我們平時(shí)最常使用的引用。只要GC的時(shí)候這個(gè)對象GC Root可達(dá),它就不會(huì)被回收。如果JVM內(nèi)存不夠了,直接拋出OOM。比如下面這段代碼就會(huì)拋出OutOfMemoryError: