java 内存泄露
来源:互联网 发布:网络大电影商业计划书 编辑:程序博客网 时间:2024/06/07 11:12
所谓内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中。
java 中有垃圾回收机制,它可以保证一对象不再被引用的时候,即对象变成了孤儿的时候,对象将自动被垃圾回收器从内存中清除掉。由于 Java 使用有向图的方式进行垃圾回收管理,可以消除引用循环的问题,例如有两个对象,相互引用,只要它们和根进程不可达的,那么 GC 也是可以回收它们的。
java 中的内存泄露的情况:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是 java 中内存泄露的发生场景,通俗地说,就是程序员可能创建了一个对象,以后一直不再使用这个对象,这个对象却一直被引用,即这个对象无用但是却无法被垃圾回收器回收的,这就是 java 中可能出现内存泄露的情况,例如,缓存系统,我们加载了一个对象放在缓存中(例如放在一个全局 map 对象中),然后一直不再使用它,这个对象一直被缓存引用,但却不再被使用。
检查 java 中的内存泄露,一定要让程序将各种分支情况都完整执行到程序结束,然后看某个对象是否被使用过,如果没有,则才能判定这个对象属于内存泄露。
如果一个外部类的实例对象的方法返回了一个内部类的实例对象,这个内部类对象被长期引用了,即使那个外部类实例对象不再被使用,但由于内部类持久外部类的实例对象,这个外部类对象将不会被垃圾回收,这也会造成内存泄露。
0 0
- Java内存泄露问题
- Java内存泄露问题
- java的内存泄露
- 关于java内存泄露
- Java内存泄露
- Java内存泄露
- Java内存泄露
- java内存泄露
- java内存泄露(转)
- java内存泄露
- Java内存泄露
- java的内存泄露
- java内存泄露解析
- java内存泄露
- java内存泄露辩论
- java 内存泄露
- Java内存泄露问题
- Java内存泄露
- git常用命令总结上
- 黑马程序员——java基础 io 字节流
- 使用自定义注解实例2
- C++ STL 学习 :for_each与仿函数(functor)
- Javascript中的闭包
- java 内存泄露
- Java浮点数运算的精确度和四舍五入的问题
- Win7/Win8/Win10下安装Ubuntu14.04双系统 以及常见问题
- 第一章第五题
- 二叉树遍历(递归与迭代)
- 什么是对偶问题
- 回文串
- IO流操作规律
- 云计算服务之Amazon Web services