`
robindut
  • 浏览: 46325 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

6.消除过期的对象引用

 
阅读更多

 

过期引用会导致内存泄漏:

1.如果一个栈先增长再收缩,那么从栈中弹出来的对象将不会被当作垃圾回收,即使使用栈的程序不再引用这些对象,它们也不会被回收,因为栈内部维护着这些对象的过期引用,从而可能导致内存泄漏。

2.解决方法是只要一个对象被弹出栈,就将它的引用过期(指向null)

注意:只要类自己管理内存,就应该警惕内存泄漏问题!!!

内存泄漏的另一个常见来源是缓存。

3.第三个常见来源是监听器和其他回调。

分享到:
评论

相关推荐

    JAVA核心知识点整理(有效)

    引用计数法............................................................................................................................................... 26 2.4.1.2. 可达性分析..........................

    《Effective Java》读书分享.pptx

    消除过期的对象引用 消除过期引用是非常重要的,不仅可以减少内存占用,还可以避免对象泄露和内存溢出。消除过期引用可以使用多种方法,例如,使用 WeakReference 或 SoftReference,或者使用 finalize() 方法来...

    JS脚本运行缺少对象

    2. **清除浏览器缓存**:浏览器缓存中可能存在损坏的文件或过期的数据,清理缓存有助于消除这些潜在的问题。 3. **检查病毒感染**:病毒或恶意软件可能干扰正常的脚本执行,使用反病毒软件进行全面扫描是必要的。 4....

    Java高效编程指南.doc

    特别要注意数组、HashMap等数据结构中的对象引用。 4. **对象定义** - **重载equals方法**:当类实例具有逻辑等价性时,应重载`equals`方法并遵守约定,同时也要重载`hashCode`方法。这在使用对象作为Map的键或Set...

    Java弱引用与WeakHashMap

    在《Effective Java 2nd Edition》中,第6条“消除过期的对象引用”提到,虽然Java有垃圾回收机制,但是只要是自己管理的内存,应该警惕内存泄露的问题,例如的对象池、缓存中的过期对象都有可能引发内存泄露的问题...

    effective java 读书笔记

    - Item6:消除过期对象引用,避免内存泄漏。及时将不再使用的对象设置为null,使其可以被垃圾收集器回收。 3. **处理对象生命周期** - Item7:Java中的finalizers用于清理对象资源,但不应依赖其执行,因为它们...

    effectice_java第二版 英文

    6. **条目6:消除过期的对象引用(Eliminate Unused Object References)** 过期的对象引用可能导致内存泄漏,确保及时释放不再使用的对象。 7. **条目7:覆盖equals时总要覆盖hashCode(Override equals() and ...

    Quest JProbe教程:Java内存分析示例(节选)

    LeakExample程序旨在演示如何定位一个过期集合引用所导致的Java堆中整个对象树的游离问题。通过本教程,开发者将学会如何使用JProbe来识别代码中的游离对象,并采取措施修复这些问题。 ##### 3.2 操作步骤 ###### ...

    Java内存泄漏原因分析大全

    例如,如果程序中存在对不再需要的对象的引用,那么这些对象将不会被垃圾回收器清理掉,从而导致内存泄漏。 #### 典型的内存泄漏原因 ##### 1. 全局集合的不当管理 在大型应用中,常常需要使用全局集合(例如JNDI...

    move

    1. 右值引用:这是实现移动语义的关键,它允许函数参数捕获临时对象或即将过期的对象。用`&&`符号表示,如`T&& obj`。 2. 移动构造函数:当一个新对象通过另一个即将销毁的对象创建时,移动构造函数会被调用。它将...

    微软活动目录管理管理简明手册

    b+ v+ T d/ R在活动目录中每个对象都有一个标识名,标识名确定了对象所在的域和可以找到对象的完整路径。比如,典型的标识名包括: ) v( ^# h2 Q% P ) k( @' h3 e4 k* G+ s" i7 `CN=TOM,OU=Manager,DC=Tech,DC=...

    2021-2022计算机二级等级考试试题及答案No.1341.docx

    - **实际应用**:利用MySQL事件可以实现定时任务的自动化处理,如定期备份数据、清理过期记录等。 #### 4. 软件分类 - **知识点说明**:软件可以分为应用软件、系统软件和支持软件(或工具软件)。其中,教务管理...

    C#错误编码详解很有用!

    **解决方案**: 消除命名空间内的命名冲突。 #### 错误 CS0105 **描述**: 使用了已过期的类型。 **解决方案**: 替换为有效的类型。 #### 错误 CS0106 **描述**: 属性值不在当前范围内有效。 **解决方案**: 确认属性...

Global site tag (gtag.js) - Google Analytics