`

Effective Java第七条:避免使用终结方法

阅读更多

第七条:避免使用终结方法

 

 

1, 终结方法(finalizer)会让程序不稳定,性能降低,出现可移植性的问题。

2, Finalizerc++中师析构器(destructors)的一部分,用作回收资源。在java中垃圾回收机制可以帮助完成。也可以通过try-finally在手动执行类似工作。

3, JVM中终结方法是被延迟执行的,也就是说,线程优先级低于其他类型的线程,不是第一时间你关闭的操作就被执行。所以切记不得用以在要求时间性上很严格的操作中。

4, System.gcSystem.runFinalization这两个方法也不能保证终结方法一定执行。

5, 提供一个显示的终止方法,并要求每个类的客户端在确保每个实例不在有用的时候调用这个方法,并且实例必须记录自己是否已经被终结。如果方法终结后还有对象试图去访问,则必须检测这个域并抛出IllegalStateException异常。

6, 显示终止方法的典型例子是:InputStream,OutputStream,java.sql.Connection.Java.awt中的Graphics.dispose,Window.dispose,Image.flush.

7, 终结方法的好处:a,充当安全网。B,终止非关键的本地资源

8, 如果使用了终结方法,记得调用super.finalize。如果用终结方法做安全网,那么请记住终结方法的非法用法,如果终结方法于非final类关联起来了,请使用终结方法守卫者(finalizer guardian)确保子类调用了super.finalize

9,

分享到:
评论

相关推荐

    Effective Java第三版1

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

    Effective Java读书笔记.pdf

    Effective Java是一本关于Java编程语言的经典书籍,本笔记主要总结了Java语言的发展历程、静态工厂方法的应用、构造器模式的使用等重要知识点。 一、Java语言的发展历程 Java语言的发展可追溯到1991年,当时由...

    effective-java.pdf

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

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

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

    Effective Java.zip

    - 接口的默认方法:Java 8引入的新特性,允许在接口中添加非抽象方法的实现,增强了接口的功能。 - 实现类的继承策略:建议尽量避免多层次的继承,提倡使用组合和接口来代替。 - 避免使用 finalize() 方法:由于...

    effectiveJava课件分享

    在编程领域,特别是Java开发中,"Effective Java"是一本非常经典的书籍,由Joshua Bloch撰写,书中提出了一系列最佳实践和设计原则,以帮助开发者编写出更高效、更安全的代码。根据提供的标题和描述,我们将探讨三个...

    effective java 读书笔记

    - Item7:Java中的finalizers用于清理对象资源,但不应依赖其执行,因为它们可能不会被调用,而且会影响垃圾收集性能。 4. **通用方法设计** - Item8:equals方法应与`==`操作符一致,同时对所有字段进行比较。...

    Effective java 3 学习记录.docx

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

    《Effective Java》读书分享.pptx

    消除过期引用可以使用多种方法,例如,使用 WeakReference 或 SoftReference,或者使用 finalize() 方法来回收对象。 其他知识点 其他知识点还包括泛型、枚举和注解、Lambda 和 Stream、方法、通用编程、异常、...

    effective-java 配套代码

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

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

    《Effective C#中文版:改善C#程序的50种方法》是一本专注于提升C#编程技巧和优化代码质量的指南。这本书的核心是通过50个独立但相互关联的建议,帮助开发者深入理解C#语言的特性,并利用这些特性编写出更加高效、可...

    effecctivejava 第三版中文

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

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

    《Effective Enterprise Java》也不例外,它旨在帮助开发者避免常见的陷阱,提升代码质量,并提高开发效率。书中的每个条目都是一个独立的建议,旨在解决实际开发中遇到的问题,这些条目通常以简洁明了的方式呈现,...

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

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

    effective enterprise java 中文版

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

    effectiveJava的笔记

    这本书的第三版包含了大量更新,涵盖了Java语言和平台的新发展,如Java 8和Java 9的新特性。以下是对《Effective Java》笔记中可能涉及的关键知识点的详细解读: 1. **单例模式**:书中强调了如何正确实现单例模式...

Global site tag (gtag.js) - Google Analytics