1.引用數(shù)據(jù)類型概論
引用數(shù)據(jù)類型變量名這樣聲明的時(shí)候變量為null。
引用數(shù)據(jù)類型變量名=new引用數(shù)據(jù)類型,例如Stringa=newString("hi~")這時(shí)候內(nèi)存存儲(chǔ)如圖:
這時(shí)候Stringa在棧內(nèi)存中聲明了一個(gè)內(nèi)存地址,內(nèi)存地址指向堆內(nèi)存中newString("hi~")聲明的對(duì)象。即變量名為引用的內(nèi)存地址。
2.引用數(shù)據(jù)類型分類
類
接口
接口不能直接new進(jìn)行實(shí)例化,可以引用實(shí)現(xiàn)接口的類。
數(shù)組
3.引用分類
強(qiáng)引用(StrongReference)
一般使用的引用Aa=newA();
當(dāng)內(nèi)存空間不足,Java虛擬機(jī)寧愿拋出OutOfMemoryError錯(cuò)誤,使程序異常終止,也不會(huì)靠隨意回收具有強(qiáng)引用的對(duì)象來解決內(nèi)存不足的問題。
一句話,空間不回收。
軟引用(SoftReference)
當(dāng)內(nèi)存空間不足時(shí),會(huì)回收軟引用對(duì)象。
一句話,空間不足就回收。
弱引用(WeakReference)
在java垃圾回收期掃描它管轄的范圍之內(nèi)時(shí),發(fā)現(xiàn)弱引用,就進(jìn)行回收。
一句話,發(fā)現(xiàn)就回收。
虛引用(PhantomReference)
虛引用并不會(huì)決定對(duì)象的生命周期。如果一個(gè)對(duì)象僅持有虛引用,那么它就和沒有任何引用一樣,在任何時(shí)候都可能被垃圾回收器回收。
一句話,任何時(shí)候回收。
虛引用必須要和ReferenceQueue一起使用。ReferenceQueue是一種隊(duì)列,java虛擬機(jī)將垃圾回收的對(duì)象放入其中。(ReferenceQueue也可以和軟引用或弱引用一起使用)。
4.問題
問題如下
結(jié)果為:
以上就是深圳達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):java引用數(shù)據(jù)類型”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。