java中会存在内存泄漏吗,请简单描述。
来源:互联网 发布:jira ubuntu 破解版 编辑:程序博客网 时间:2024/05/18 03:08
java中会存在内存泄漏吗,请简单描述。
内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中。java中有垃圾回收机制,它可以保证一对象不再被引用的时候,即对象变成了孤儿的时候,对象将自动被垃圾回收器从内存中清除掉。由于Java
java中的内存泄露的情况:
1.长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中内存泄露的发生场景,通俗地说,就是程序员可能创建了一个对象,以后一直不再使用这个对象,这个对象却一直被引用,即这个对象无用但是却无法被垃圾回收器回收的,这就是java中可能出现内存泄露的情况,例如,缓存系统,我们加载了一个对象放在缓存中(例如放在一个全局map对象中),然后一直不再使用它,这个对象一直被缓存引用,但却不再被使用。
检查java中的内存泄露,一定要让程序将各种分支情况都完整执行到程序结束,然后看某个对象是否被使用过,如果没有,则才能判定这个对象属于内存泄露。
2.如果一个外部类的实例对象的方法返回了一个内部类的实例对象,这个内部类对象被长期引用了,即使那个外部类实例对象不再被使用,但由于内部类持久外部类的实例对象,这个外部类对象将不会被垃圾回收,这也会造成内存泄露。
3.当一个对象被存储进HashSet集合中以后,就不能修改这个对象中的那些参与计算哈希值的字段了,否则,对象修改后的哈希值与最初存储进HashSet集合中时的哈希值就不同了,在这种情况下,即使在contains方法使用该对象的当前引用作为的参数去HashSet集合中检索对象,也将返回找不到对象的结果,这也会导致无法从HashSet集合中单独删除当前对象,造成内存泄露。
- java中会存在内存泄漏吗,请简单描述
- java中会存在内存泄漏吗,请简单描述。
- java中会存在内存泄漏吗,请简单描述
- java中会存在内存泄漏吗,请简单描述。
- java中会存在内存泄漏吗,请简单描述。
- java中会存在内存泄漏吗,请简单描述。
- java中会存在内存泄漏吗,请简单描述?
- java中会存在内存泄漏吗,请简单描述?
- java中会存在内存泄漏吗,请简单描述。
- java中会存在内存泄漏吗,请简单描述。
- java基础问题----java中会存在内存泄漏吗,请简单描述
- Java中会存在内存泄露吗,请简单描述。
- java中会存在内存泄漏吗
- java中会存在内存泄漏吗
- java中会存在内存泄漏吗?
- java中会存在内存泄漏吗
- Java中会存在内存泄漏吗
- Java中会存在内存泄漏吗
- unix网络编程之UNIX Domain Socket IPC (sockaddr_un )
- vs2013提示malloc是未定义的标识符
- qt creator下载
- Java 初学之--嗒嗒租车系统
- 1052. Linked List Sorting (25)
- java中会存在内存泄漏吗,请简单描述。
- L2-008 最长对称字串 以下标i展开
- freemarker日期函数处理
- ArrayList源码解析与实现
- OpenCV学习
- Javascript 对象(object)合并
- android签名打包发布到应用市场
- 初次推送项目至码云应该如何操作
- oracle数据库基础一