内存泄露简述
来源:互联网 发布:电话号码数据库 编辑:程序博客网 时间:2024/06/03 18:13
内存泄露是指 系统无法回收不再使用的内存,在java中,我们常常申请一定的内存,但由于我们代码编写的错误导致内存无法释放,这就是最直接的内存泄露。
下面看一下经典的内存泄露的代码示例:
Vector v = new Vector(10);
for (int i = 1; i<100; i++)
{Object o = new Object();
v.add(o);
o = null;
}//
这里我们看一下。我们循环申请了Object对象,并且将对象放入一个Vector 中,如果仅仅释放引用本身,那么Vector 仍然引用该对象,所以这个对象对GC 来说是不可回收的。因此,如果对象加入到Vector 后,还必须从Vector 中删除,最简单的方法就是将Vector对象设置为null。
Object o = new Object();
其实我们通过new Object() 来创建对象,o是这个对象的引用,就是说我们通过声明o可以找到新创建的object对象,但是o并不是这个对象。
就好比o是一个门牌号,通过这个号码可以找到相应的房间,但是o并不是这个房间。
而v.add(o);相当于把门牌号放入进去,及时将这个引用设置为null ,vector还是可以通过内部信息找到对象,所以这个对象一直被引用,不是垃圾,无法回收。
0 0
- 简述Java内存泄露
- 内存泄露简述
- 简述Java内存泄露
- 简述Java内存泄露
- 简述Java内存泄露
- 简述Java内存泄露
- 内存泄露
- 内存泄露
- 内存泄露
- 内存泄露
- 内存泄露
- 内存泄露
- 内存泄露
- 内存泄露
- 内存泄露
- 内存泄露
- 内存泄露
- 内存泄露
- 图论算法(6)(更新版) --- Tarjan算法求强连通分量
- Word Search [leetcode]
- 怎么上谷歌E9加速器分享安卓平板怎么上Google注册gmail
- windows server 2012 活动目录部署系列(七)域控制器的常规卸载
- PDU编码(非常经典)
- 内存泄露简述
- QRadioButton分组且无边框的简单实现
- 列书闲读
- hdu 5038 Grade(水题)
- Minimum Window Substring [leetcode]
- 眼图
- 2015 TCL编程笔试题
- QRadioButton分组且无边框的简单实现
- Fragment学习(二): 管理Fragment和Fragment通讯