亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: puppy19761210
打印 上一主題 下一主題

收集什么情況下JAVA會造成內(nèi)存泄露?? [復制鏈接]

論壇徽章:
0
21 [報告]
發(fā)表于 2005-10-12 02:01 |只看該作者

收集什么情況下JAVA會造成內(nèi)存泄露??

原帖由 "sakulagi" 發(fā)表:
/agree

比較新的JVM的gc算法應該是可以識別的。

哦??從一個版本開始的??
core java 以此問題 以此問題 引出了一個特殊的collection 是否無用了。。。。

論壇徽章:
0
22 [報告]
發(fā)表于 2005-10-12 11:22 |只看該作者

收集什么情況下JAVA會造成內(nèi)存泄露??

jdbc 的例子我不認同 垃圾收集和你關不關資源是沒有關系。
當你connection 的實例不被引用的時候。 會被垃圾收集。垃圾收集后連接是釋放 如果你不關鏈接的。如果使用連接池的話情況就復雜了。根據(jù)不同的實現(xiàn)是出現(xiàn)不同的情況。 那是因為有resultset搗亂。我指的是釋放了鏈接而不去釋放resultset
頂多是把連接耗盡。別人無法連接數(shù)據(jù)庫而已。
對于別的資源我認為也是這樣的。當然如果資源太大太多的話 不即使關閉的還是會耗盡內(nèi)存的。其實最簡單的會出現(xiàn)不被收集的一種情況就是。不停的往一個集合中插入數(shù)據(jù)。比如hashmap 然后忘了 取出hashmap的中的引用這樣的話集合中的元素不會被收集

論壇徽章:
0
23 [報告]
發(fā)表于 2005-10-12 11:23 |只看該作者

收集什么情況下JAVA會造成內(nèi)存泄露??

抱歉我寫的太亂了 抱歉

論壇徽章:
0
24 [報告]
發(fā)表于 2005-10-12 17:30 |只看該作者

收集什么情況下JAVA會造成內(nèi)存泄露??

原帖由 "tong0245" 發(fā)表:
不停的往一個集合中插入數(shù)據(jù)。比如hashmap 然后忘了 取出hashmap的中的引用這樣的話集合中的元素不會被收集


???啥意思???

論壇徽章:
0
25 [報告]
發(fā)表于 2005-10-12 21:41 |只看該作者

收集什么情況下JAVA會造成內(nèi)存泄露??

下面給出了一個簡單的內(nèi)存泄露的例子。在這個例子中,我們循環(huán)申請Object對象,并將所申請的對象放入一個Vector中,如果我們僅僅釋放引用本身,那么Vector仍然引用該對象,所以這個對象對GC來說是不可回收的。因此,如果對象加入到Vector后,還必須從Vector中刪除,最簡單的方法就是將Vector對象設置為null。

Vector v=new Vector(10);
for (int i=1;i<100; i++)
{
Object o=new Object();
v.add(o);
o=null;
}
我寫的太亂了抱歉  這是我從網(wǎng)上摘抄的 和我的意思一樣

論壇徽章:
0
26 [報告]
發(fā)表于 2005-10-13 10:12 |只看該作者

收集什么情況下JAVA會造成內(nèi)存泄露??

我覺得這些都不算真正意義上的內(nèi)存泄漏。
以前c語言中的內(nèi)存泄漏是指內(nèi)存被分配了,但程序無法訪問,例如分配內(nèi)存后直接將指針置空。原先分配的內(nèi)存既無法回收,又沒法訪問,所以是內(nèi)存泄漏。
上面的例子只是分配了,你程序還是可以訪問vecotor中的內(nèi)容,只是你不用而已,所以我覺得是內(nèi)存浪費,不是泄漏。
說實話,我想不出java如何實現(xiàn)真正的內(nèi)存泄漏。

論壇徽章:
0
27 [報告]
發(fā)表于 2005-10-13 10:52 |只看該作者

收集什么情況下JAVA會造成內(nèi)存泄露??

我覺得,Java中只要Heap在無限制增長,就是內(nèi)存泄漏。
所以tong0245的例子是正常的。

http://www-128.ibm.com/developerworks/library/j-leaks/index.html

論壇徽章:
0
28 [報告]
發(fā)表于 2005-10-13 10:56 |只看該作者

收集什么情況下JAVA會造成內(nèi)存泄露??

jdbc的例子是不太對

論壇徽章:
0
29 [報告]
發(fā)表于 2005-10-13 13:41 |只看該作者

收集什么情況下JAVA會造成內(nèi)存泄露??

[quote]原帖由 "tong0245"]下面給出了一個簡單的內(nèi)存泄露的例子。在這個例子中,我們循環(huán)申請Object對象,并將所申請的對象放入一個Vector中,如果我們僅僅釋放引用本身,那么Vector仍然引用該對象,所以這個對象對GC來說是不可回收的。因此,..........[/quote 發(fā)表:


這并不是 內(nèi)存泄漏。。。
第一 我仍然有辦法從新得到方如其中的object
第二 該 Vector對象 一旦出了 作用范圍則引指消失 并不會一直保持引指。換句話說,如果不是在濫用一些全局性的東西,比如靜態(tài)collection或單例的東西,不太會出現(xiàn)問題。

論壇徽章:
0
30 [報告]
發(fā)表于 2005-10-13 16:53 |只看該作者

收集什么情況下JAVA會造成內(nèi)存泄露??

說說我的觀點 首先 c和java是兩種不同的語言。拋開對象不說java是有垃圾收集的。意思是說當一個對象不可達的時候(我認為這就是一個懸空的指針了)
垃圾收集器有義務去收集他。 這個部分不應該是java程序員去考慮的。
垃圾收集的目的再此。所以在理論上來說java不應該也不可能出現(xiàn)你說的c 由于懸空指針所發(fā)生的內(nèi)存泄漏。如果發(fā)生了那就是jvm的bug。而不是程序員的問題。當然如果碰到了還是要避免的。
然后再說說我對內(nèi)存泄漏的觀點 從c的觀點來看你說的是對的。 但是綜合來看,也就是從java和c的觀點來看,所謂內(nèi)存泄漏就是在一種為預料的情況下內(nèi)存沒有得到適當釋放 。造成了內(nèi)存缺失造成不可以預料的后果(其實還是可以預料的哈哈)。是否失懸空指針不是問題的關鍵。畢竟c和java一個大的區(qū)別的 有和沒有垃圾收集
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP