`

Effective Java第六条:消除过期的对象引用

阅读更多

第六条:消除过期的对象引用

1, 如果一个栈先是增长,然后再收缩,那么在栈中弹出来的对象将不会被当做垃圾回收,即使使用栈的程序不再引用这些对象,它们也不会被回收,因为,在栈的内部保存了对象的过期引用(obsolete reference),过期引用指的就是永远不会再被解除的引用。

2, stack中解决过期引用的方法就是在把对象推出栈的时候,设置栈为null

3, 自行管理内存的类都有可能出现内存溢出问题。

4, 缓存也是具有内存溢出问题

5, 还有就是监听器和其他回调

6, 在缓存中,只要外部仍然有对象的引用,那么请使用WeakHashMap来代表缓存,这样就能管理内存。

7, 同理监听器和回调。保存成WeakHashMap中的键。

8,

分享到:
评论

相关推荐

    Effective Java第三版1

    7. **终结方法与清理器**:Java中的`finalize`方法往往不推荐使用,因为它不能保证执行,性能影响且可能导致不可预测的行为。 8. **try-with-resources**:从Java 7开始,try-with-resources语句使得资源的自动关闭...

    effective java 读书笔记

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

    effective-java.pdf

    标题“effective-java.pdf”与描述“effective-java.pdf”表明本文档是关于Java编程实践的指南,且内容可能来自于一本名为《Effective Java》的书籍,该书是由Joshua Bloch编写,被广泛认为是Java编程的权威指南。...

    Effective Java读书笔记.pdf

    * 跨平台性:Java语言可以在多种平台上运行,包括Windows、Linux、Mac OS等。 * 安全性:Java语言具有内置的安全机制,保护用户免受恶意代码的攻击。 * 可靠性:Java语言具有强大的错误处理机制,能够快速恢复程序...

    《Effective Java》读书分享.pptx

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

    effectiveJava课件分享

    5. 如果类包含其他对象引用,确保这些对象也是不可变的,或者至少是不可变的视图。 例如,Java的String类就是一个典型的不可变类。通过遵循这些规则,我们可以创建出更健壮、更安全的组件,减少因意外修改状态而...

    Effective java 3 学习记录.docx

    Effective Java 3 学习记录 本学习记录主要介绍了 Effective Java 3 中的静态工厂方法和 Builder 模式两部分内容。 一、静态工厂方法 静态工厂方法是指返回类实例的命名规则,例如:from、of、valueOf、instance ...

    《Effective_C#中文版:改善C#程序的50种方法》

    《Effective_C#中文版:改善C#程序的50种方法》读书笔记

    Effective Java.zip

    4. **第6章 枚举和注解** - 枚举的使用:强调枚举的多种用途,如枚举类型的安全性、枚举实例的遍历、枚举常量的关联方法等。 - 注解:解释注解的元数据功能,如何创建自定义注解以及处理注解的反射API。 5. **第7...

    Effective.Enterprise.Java.中文版 高清pdf 下载

    《Effective Enterprise Java》是Java开发领域的一本经典著作,由著名技术专家Bill Venners编著,被广大Java开发者誉为“四大名著”之一。这本书深入探讨了在企业级Java开发中如何写出高效、可维护和易于理解的代码...

    effective-java 配套代码

    《Effective Java》是Java开发领域的一本经典著作,由Joshua Bloch撰写,书中提出了一系列编程最佳实践和设计模式,帮助开发者写出更高效、更可靠、更易于维护的Java代码。配套代码`effective-java-examples-master`...

    Effective-Java:Effective Java中文版第二版示例代码

    《Effective Java》是Java开发领域的经典著作,由Joshua Bloch撰写,中文版第二版更是深受广大Java开发者喜爱。这本书提供了许多实用的编程实践和经验教训,帮助开发者编写出更高效、可维护的Java代码。这里我们将...

    effecctivejava 第三版中文

    《Effective Java》是Java编程领域的一本经典著作,由Joshua Bloch撰写,现在已经更新到第三版。这本书深入探讨了如何编写高效、可维护且设计良好的Java代码,是每一个Java开发者提升技能的重要参考资料。以下是对该...

    Effective Java 3rd edition(Effective Java第三版英文原版)附第二版

    Item 6: Avoid creating unnecessary objects Item 7: Eliminate obsolete object references Item 8: Avoid finalizers and cleaners Item 9: Prefer try-with-resources to try-finally 3 Methods Common to All ...

    effective enterprise java 中文版

    《Effective Enterprise Java》是一本由James Gosling、Bill Venners和Cay S. Horstmann合著的经典著作,旨在帮助Java开发者深入理解和利用企业级Java技术。这本书提供了78条具体的建议,涵盖了从设计模式到并发编程...

    Effective+C#中文版:改善C#程序的50种方法

    6. **深入理解`this`关键字**:`this`关键字在C#中代表当前对象,可以用于调用成员方法和属性,避免命名冲突,也可以在构造函数中引用其他构造函数。 7. **使用`foreach`遍历集合**:`foreach`循环简化了对数组、...

Global site tag (gtag.js) - Google Analytics