免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: puppy19761210

收集什么情况下JAVA会造成内存泄露?? [复制链接]

论坛徽章:
0
发表于 2005-10-13 16:55 |显示全部楼层

收集什么情况下JAVA会造成内存泄露??

【1】 我觉得,只要是失去控制,比如程序员忘记释放某个对象,以至于该对象在程序逻辑中不再发生作用,但是却仍然驻留在heap里,就是泄漏,即使JVM还能找到。这是逻辑错误导致的泄漏。不是说一定要在语法层面上泄漏,比如C/C++中没有delete的指针。即使程序员“能够”得到该对象的引用,但是他“忘记”了,那就已经泄漏了。(老板只看内存用了多少,不会理会那个对象是不是还是可访问,对吧?)

【2】 从那个例子里的程序片断不能确定该Vector的life,有泄漏的危险而已

论坛徽章:
0
发表于 2005-10-13 17:04 |显示全部楼层

收集什么情况下JAVA会造成内存泄露??

然后在java中还是可能出现内存泄漏的 。 我摘抄的例子只是说明为什么会发生泄漏。实际写代码当中还没有那么傻的人。但是在一个大的系统中是可能发生的。比如有人往 webserver的session中放了大对象或者其他资源。这个时候会发生事实上的泄漏。为什么呢? 放的人忘了remove了。只能等超时了。
另外的一种情况是 当你把一个比较大对象集合传入到另外的一个活跃对象。
当你不需要 那个活跃对象活跃的他确比你预期的活跃时间要长。 这个时候也可能会发生内存的泄漏。
如你所说确实不是悬空的指针。但是重要的你忘记了放弃最后一个无用的指针啊(引用) jvm是不会帮你做这个工作。 其实这和在c中 在把最后一个指针置为null的时候忘记free其实没有区别的。都是人忘了做机器不能做的事情。当然在java中不太容易出现这种情况,这正是垃圾收集目的。

“如果不是在滥用一些全局性的东西,比如静态collection或单例的东西,不太会出现问题。”你说的很对啊
另外我对c不熟 对java也很一般。另外我也没有上过大学 去专门的学习。
以上是我自己的理解如果有错误 希望纠正。

论坛徽章:
0
发表于 2005-10-13 17:25 |显示全部楼层

收集什么情况下JAVA会造成内存泄露??

非常高兴看到大家热烈的讨论,不管完全正确与否,肯定能够加深对JAVA的理解,各位的观点都很有见地,特别是版主和aong0245等等,我就不一一列举了,我也是一个没上过大学的程序员!那位tong0245你现在达到什么位置,我能否发现的同路人的一个更高的目标!!!
   热烈欢迎大家更激烈的讨论!! 谢谢!!
坦诚的说,我以前在这个层面上考虑的问题不多.

论坛徽章:
0
发表于 2005-10-13 17:28 |显示全部楼层

收集什么情况下JAVA会造成内存泄露??

公司里最惨的程序员天天写jsp javascript  java类

论坛徽章:
0
发表于 2005-10-13 17:40 |显示全部楼层

收集什么情况下JAVA会造成内存泄露??

我都30了 天天还是写烂程序。 我是24岁那年自己学了点vb。的23之前我还没有见过电脑。我在首钢技校上的学。现在我也非常迷茫 前途在哪里啊。

论坛徽章:
0
发表于 2005-10-13 17:54 |显示全部楼层

收集什么情况下JAVA会造成内存泄露??

哈哈 是吗?? 一样 彼此彼此

论坛徽章:
0
发表于 2005-10-13 19:00 |显示全部楼层

收集什么情况下JAVA会造成内存泄露??

原帖由 "tong0245"]然后在java中还是可能出现内存泄漏的 。 我摘抄的例子只是说明为什么会发生泄漏。实际写代码当中还没有那么傻的人。但是在一个大的系统中是可能发生的。比如有人往 webserver的session中放了大对象或者其他资源。这?..........
嗯,//agree。所以从你给例子代码上推测,很可能接下来出现内存泄漏

通常cache之类的东西管理不好,就会出现和你举的那个例子类似的问题。

[ 本帖最后由 sakulagi 于 2005-10-31 20:49 编辑 ]

论坛徽章:
0
发表于 2005-10-13 19:01 |显示全部楼层

收集什么情况下JAVA会造成内存泄露??

原帖由 "tong0245"]我都30了 天天还是写烂程序。 我是24岁那年自己学了点vb。的23之前我还没有见过电脑。我在首钢技校上的学。现在我也非常迷茫 前途在哪里啊。

我也30了,不过最近写程序写的少了。对前途的迷茫却是一样的。

[ 本帖最后由 sakulagi 于 2005-10-31 20:49 编辑 ]

论坛徽章:
0
发表于 2005-10-14 23:20 |显示全部楼层

收集什么情况下JAVA会造成内存泄露??

heihei
内存泄漏的定义大家还不一样。。。
又是一个没有结论的问题。。。

论坛徽章:
0
发表于 2005-10-18 15:39 |显示全部楼层

收集什么情况下JAVA会造成内存泄露??

jsp中创建的连接过多的时候,或者创建的连接没有关闭会有泄露的问题!java有自动的内存回收一般不会泄露的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP