色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Java對象使用后設(shè)置為null會減少內(nèi)存占用嗎?

呂致盈2年前14瀏覽0評論

首先科普一下,Java對象是引用變型的,它會用兩種內(nèi)存區(qū):堆內(nèi)存、棧內(nèi)存。Java對象是存儲在堆內(nèi)存中的,而對此對象的引用(理解為變量)存儲在棧內(nèi)存中。

比如:Stringstr=newString("字符串");這行代碼用的是兩塊內(nèi)存,newString("字符串")存在堆內(nèi)存中,str變量存儲在棧內(nèi)存中。

當(dāng)我們設(shè)置對象為null后(即:str=null),此時str變量與堆內(nèi)存中的數(shù)據(jù)就斷開聯(lián)系了,GC算法會在必要時回收str及堆內(nèi)存中的對象,但這個GC任何回收我們是無法干預(yù)的。

總結(jié)說就是:Java對象在使用后設(shè)置為null,在GC對此對象回收后,內(nèi)存會相應(yīng)減少,但不是說將一個對象引用設(shè)置為null后內(nèi)存就立馬釋放了。GC會在合適的時間來回收垃圾數(shù)據(jù)。