java釋放對(duì)象 在java中,對(duì)象什么時(shí)候可以被垃圾回收?
在java中,對(duì)象什么時(shí)候可以被垃圾回收?一般來(lái)說(shuō),Java中的對(duì)象可以循環(huán)使用的前提是不再引用該對(duì)象。例如:Object o=new Object()o=null。在這種情況下,第一步中的新對(duì)象將不
在java中,對(duì)象什么時(shí)候可以被垃圾回收?
一般來(lái)說(shuō),Java中的對(duì)象可以循環(huán)使用的前提是不再引用該對(duì)象。例如:Object o=new Object()o=null。在這種情況下,第一步中的新對(duì)象將不再被引用,垃圾收集器將在收集對(duì)象時(shí)對(duì)其進(jìn)行清理。在特殊情況下,Java中存在弱引用。即使對(duì)象被弱引用,垃圾回收機(jī)制也可以回收它。我們通常直接賦值的引用屬于強(qiáng)引用。除系統(tǒng)內(nèi)存不足等因素外,垃圾回收機(jī)制不會(huì)清理。
objective-c中weak和strong使用的區(qū)別?
(弱和強(qiáng))區(qū)別在于,當(dāng)對(duì)象不再有指向它的強(qiáng)指針時(shí),它將被釋放,即使有指向它的弱指針。清除最后一個(gè)弱指針后,將釋放所有剩余的弱指針??赡苡幸粋€(gè)合適的例子。假設(shè)我們的目標(biāo)是一只想逃跑的狗。強(qiáng)有力的指針就像插在門(mén)閂上的狗。只要你把狗拴在皮帶上,狗就跑不了。如果有五個(gè)人牽著一條狗(五個(gè)有力的指針指向一個(gè)物體),除非五根繩子全部脫落,否則狗不會(huì)逃跑。弱小的指針就像一個(gè)小孩指著一條狗大喊:“看!一只狗在那兒?!敝灰┳」?,孩子就能看到狗,弱小的指針就會(huì)一直指向它。狗的皮帶一松開(kāi),不管有多少孩子在看,狗就會(huì)跑掉。只要最后一個(gè)強(qiáng)指針不再指向?qū)ο?,?duì)象將被釋放,所有弱指針都將被清除。