一直对java的内存心存畏惧,java存在内存泄漏吗,如过存在,对于B/S架构而言,我又该如何避免内存泄漏呢

myJavaRoad 2009-03-16 12:48:51
什么是内存泄漏,一直对这个概念不是很清楚, 百度一下,也是众说纷纭,如果存在,如何避免呢,尤其在b/s结构中,

请懂行的朋友踩一下

是为谢!
...全文
272 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
微甜灬呼吸 2011-05-03
  • 打赏
  • 举报
回复
JVM自己管的
jvm挂了系统不会挂
myJavaRoad 2009-03-19
  • 打赏
  • 举报
回复
楼上的说的很有道理,受益

myJavaRoad 2009-03-17
  • 打赏
  • 举报
回复
没人关注这块?

请高人谈谈啊。
Coolfatman 2009-03-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 myJavaRoad 的回复:]
找了一段关于内存泄漏的资料,代码有疑问: 引用相同(都是o),java允许吗?
帮忙分析下
-----------
下面给出了一个简单的内存泄露的例子。在这个例子中,我们循环申请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; }

//此时,所有的Object对象都没有被释放,因为变量v引用这些对象。


[/Quote]

这个程序是外面给出的例子,其实完全不是那么回事,如果你的程序需要使用v里的Object,当然就不算内存泄漏了。此外这个程序结束的时候,v和内部的100个object对象一起被回收的,怎么算内存泄露呢。
myJavaRoad 2009-03-16
  • 打赏
  • 举报
回复
http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/

java内存泄漏,写的很好
myJavaRoad 2009-03-16
  • 打赏
  • 举报
回复
http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/

java内存泄漏,写的很好
myJavaRoad 2009-03-16
  • 打赏
  • 举报
回复
找了一段关于内存泄漏的资料,代码有疑问: 引用相同(都是o),java允许吗?
帮忙分析下
-----------
下面给出了一个简单的内存泄露的例子。在这个例子中,我们循环申请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;
}

//此时,所有的Object对象都没有被释放,因为变量v引用这些对象。


oklinsong 2009-03-16
  • 打赏
  • 举报
回复
java虚拟机自己管理,垃圾回收器。
myJavaRoad 2009-03-16
  • 打赏
  • 举报
回复
没这么可怕,一般web项目都是运行完就释放的,完全没有问题。
需要关心的是静态对象。静态对象主要是指容器类和对象数组。全部程序写完,把所有的静态对象过一遍即可。其他的都有系统处理。
---------------

静态对象的生存期长,可以理解,
但”静态对象主要是指容器类和对象数组。全部程序写完,把所有的静态对象过一遍即可“,这个朋友能具体点吗?
myJavaRoad 2009-03-16
  • 打赏
  • 举报
回复
楼上朋友好,
原来听朋友说过这个问题,今天抽空想想,但不得其解?
Coolfatman 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 myJavaRoad 的回复:]
什么情况下会导致内存泄漏呢

web服务一旦启动,长时间运行,访问的用户又多,这个问题处理不好,是否有系统瘫痪的危险啊
[/Quote]

没这么可怕,一般web项目都是运行完就释放的,完全没有问题。
需要关心的是静态对象。静态对象主要是指容器类和对象数组。全部程序写完,把所有的静态对象过一遍即可。其他的都有系统处理。
nyzfl 2009-03-16
  • 打赏
  • 举报
回复
这个需要考虑吗?
Seanxiaoxiao 2009-03-16
  • 打赏
  • 举报
回复
自认为JAVA的程序是在JVM的内存中,就算是泄露也不会超过JVM中分配的内存
myJavaRoad 2009-03-16
  • 打赏
  • 举报
回复
在线等?
myJavaRoad 2009-03-16
  • 打赏
  • 举报
回复
什么情况下会导致内存泄漏呢

web服务一旦启动,长时间运行,访问的用户又多,这个问题处理不好,是否有系统瘫痪的危险啊
xuhaiyang 2009-03-16
  • 打赏
  • 举报
回复
就是用完了没有回收或不能被回收的内存

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧