社区
Web 开发
帖子详情
一直对java的内存心存畏惧,java存在内存泄漏吗,如过存在,对于B/S架构而言,我又该如何避免内存泄漏呢
myJavaRoad
2009-03-16 12:48:51
什么是内存泄漏,一直对这个概念不是很清楚, 百度一下,也是众说纷纭,如果存在,如何避免呢,尤其在b/s结构中,
请懂行的朋友踩一下
是为谢!
...全文
272
17
打赏
收藏
一直对java的内存心存畏惧,java存在内存泄漏吗,如过存在,对于B/S架构而言,我又该如何避免内存泄漏呢
什么是内存泄漏,一直对这个概念不是很清楚, 百度一下,也是众说纷纭,如果存在,如何避免呢,尤其在b/s结构中, 请懂行的朋友踩一下 是为谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
就是用完了没有回收或不能被回收的内存
Java
面试宝典Beta5.0
pdf下载地址:
Java
面试宝典 第一章内容介绍 20 第二章
Java
SE基础 21 一、
Java
面向对象 21 1. 面向对象都有哪些特性以及你对这些特性的理解 21 2. 访问权限修饰符public、private、protected, 以及不写(默认)时的区别(2017-11-12) 22 3. 如何理解clone对象 22 二、
Java
SE语法(2017-11-12-wl) ...
"臭名昭著的
Java
”
以下是从链接“C/C++与
Java
的较量”中全文复制过来的,是论坛帖子,非我原创。不知道为什么还要发明
Java
这种语言。不就比C++多了几个库,多了几个专职开发Open source源代码的开发商。classpath是个臭名昭著的问题,一不小心就出问题。界面是出奇难用,倒退到DOS命令行去了。速度奇慢,可以出去抽根烟,再回来看结果。没有一个好的开发环境,虽然开发环境倒是一大堆,可是不是速度慢,
C++ 软件
架构
(一)
原文:zh.annas-archive.org/md5/FF4E2693BC25818CA0990A2CB63D13B8 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 现代 C++允许您在高级语言中编写高性能应用程序,而不会牺牲可读性和可维护性。不过,软件
架构
不仅仅是语言。我们将向您展示如何设计和构建健壮且可扩展且性能良好的应用程序。 本书包括基本概念的逐步解释、实际示例和自我评估问题,您将首先了解
架构
的重要性,看看一个实际应用程序的案例研究。 您将学习如何在单个应用程序级别使用已建立的设计模
[
JAVA
面试]
java
面试
从享受生活的角度上来说:"程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说是即使有可以做的 工作但是你非常不愿意去做;第二,你非常痴迷和爱好程序,并且在这方面有一些天赋和优势。程序员的结局也是有两种:第一,默默退休,第二以程序员为起点或 跳板,注意积累,跟对了好的老板或团队,找到和很好的搭档自己创业,成为IT金领和富翁。" 人们在时间面前
初次走上技术管理岗位的思考总结,Redis宕机数据丢失解决方案
前言
Java
虚拟机栈是线程私有的,没有数据安全问题,而堆相比较于
Java
虚拟机栈而言更为复杂,因为堆是所有线程共享的一块
内存
空间,会出现线程安全性问题,而垃圾回收也主要是回收堆内空间,所以堆内的布局我们非常有必要深入去了解一下。现在就让我们继续来分析一下堆内布局以及
Java
对象在
内存
中的布局吧。 面:为什么要使用双亲委派机制去加载类? 答:
避免
多份同样字节码的加载,浪费
内存
。 类的加载方式 隐式加载:new 显示加载:loadClass、forName等 类的装载过程如下图: 面:loadClass
Web 开发
81,111
社区成员
341,720
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章