小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

對(duì)象清空的問(wèn)題...

 小莊 2009-03-11

對(duì)象清空的問(wèn)題

懸賞:10 發(fā)布時(shí)間:2008-11-11 提問(wèn)人:starxing (初級(jí)程序員)

我定義一個(gè)Vector ,當(dāng)我不在使用這個(gè)Vector時(shí)


下面那個(gè)方法好,為啥?


1。
vector.clear();
vector = null;

2.
vector = null;
問(wèn)題補(bǔ)充
我知道這個(gè)方法。

我的意思是說(shuō)在vector =null,之間有沒(méi)有必要把他給clear().

采納的答案

2008-11-11 上一站,火星 (資深程序員)

大多數(shù)情況下如果我們只是不再使用對(duì)象是,可以不管,交給java的垃圾回收機(jī)制來(lái)釋放對(duì)象,當(dāng)然,如果顯示的聲明ector = null,就是明確的告訴垃圾回收機(jī)制,我不用了,你可以回收了,vector.clear()不需要。用clear方法的情況是你還想用clear只是想讓它的大小為0的時(shí)候。

提問(wèn)者對(duì)于答案的評(píng)價(jià):
明白了,

其他回答

Java代碼 復(fù)制代碼
  1. public void clear() {   
  2.     removeAllElements();   
  3. }  

Java代碼 復(fù)制代碼
  1.    public synchronized void removeAllElements() {   
  2.        modCount++;   
  3. // Let gc do its work   
  4. for (int i = 0; i < elementCount; i++)   
  5.     elementData[i] = null;   
  6.   
  7. elementCount = 0;   
  8.    }  
laiseeme (初級(jí)程序員) 2008-11-11
看樣子好像是用一個(gè)數(shù)組
clear把里面所有的元素都清空
而且設(shè)置size=0

vector = null; 后
系統(tǒng)在運(yùn)行g(shù)c后就會(huì)把vector回收
是這么個(gè)意思不?

其實(shí)可以這么理解 如果你以后還有用這個(gè)vector 那就把他clear
如果你不用了 直接回收
都不用clear
直接=null

不是很明白 聽(tīng)大牛解釋解釋
laiseeme (初級(jí)程序員) 2008-11-11
JAVA還用你這么干……那他干脆和C++一樣給你個(gè)析構(gòu)方法不就得了……

你看那些大師的源代碼哪個(gè)用了XX=NULL來(lái)釋放內(nèi)存……反正我是沒(méi)見(jiàn)過(guò)這種寫法。

按照thinking in java中的觀點(diǎn),把內(nèi)存回收的任務(wù)交給回收機(jī)制,回收機(jī)制我們用任何手段都是無(wú)法控制的,當(dāng)然某些資源如果需要釋放,如IO、數(shù)據(jù)庫(kù)連接,這些是需要自己寫釋放資源的代碼的。
tianhaoleng (初級(jí)程序員) 2008-11-11
當(dāng)然需要用=Null來(lái)釋放。不然就會(huì)很容易造成Java內(nèi)存泄漏。Java只會(huì)回收無(wú)任何引用的對(duì)象。如果對(duì)象有引用存在,那么就不會(huì)被回收。所以在對(duì)象用完后,需要用引用為Null的方法銷毀。當(dāng)然,很多時(shí)候我們建立的臨時(shí)變量在生命周期完成后被自動(dòng)銷毀了,但是還有一些全局的引用存在,必須手動(dòng)銷毀。
魔力貓咪 (初級(jí)程序員) 2008-11-11
沒(méi)有必要把它c(diǎn)lear()
jones (架構(gòu)師) 2008-11-11
必要的時(shí)候可以vector = null,不過(guò)通常也不用,現(xiàn)代的JVM GC已經(jīng)很強(qiáng)了
jones (架構(gòu)師) 2008-11-11
引用
我的意思是說(shuō)在vector =null,之間有沒(méi)有必要把他給clear().

把vector =null就可以了,系統(tǒng)會(huì)自動(dòng)回收的,不用調(diào)用clear();
hanhg (中級(jí)程序員) 2008-11-11
非常明確的說(shuō)明是,沒(méi)有必要clear

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多