`

Java finalize方法使用

 
阅读更多

jdk doc

    当垃圾回收确定不再有对该对象的引用时,由对象的垃圾回收器调用。子类重写finalize方法来释放系统资源或执行其他清理。

 

    finalize的一般约定是,当 Java虚拟机已确定,任何尚未死亡的线程都不再可以通过任何方式访问此对象,除非由于已准备好完成的其他某个对象或类而执行的操作。finalize方法可以执行任何操作,包括使此对象再次可供其他线程使用finalize的通常目的,但是,是在不可撤销地丢弃对象之前执行清理操作。例如,对象的 finalize 方法,表示输入/输出连接可能执行显式 I/O 事务,用于在永久丢弃对象之前断开连接。

 

    类Object 的finalize方法不执行特殊操作;它只是正常返回。子类可能会覆盖此定义。

 

    Java 编程语言不保证哪个线程将为任何给定对象调用 {@code finalize} 方法。但是,可以保证,在调用 finalize 时,调用 finalize 的线程不会持有任何用户可见的同步锁。如果 finalize 方法引发未捕获的异常,则会忽略该异常,并终止该对象的最终化。

 

    为对象调用 {@code finalize} 方法后,在 Java 虚拟机具有再次确定,任何尚未死亡的线程都不再可以通过任何方式访问此对象,包括准备完成的其他对象或类可能的操作,此时该对象可能会被丢弃。

 

    Java 虚拟机对任何给定对象调用 finalize 方法永远不会超过一次。

 

    finalize方法引发的任何异常都会导致此对象的完成将停止,但不是忽视。

分享到:
评论

相关推荐

    Java中finalize方法使用.doc

    Java 中 finalize 方法使用 finalize 方法是 Java 编程语言中一个非常重要的方法,它与 Java 编程中的垃圾回收器有着紧密的关系。当一个对象变成一个垃圾对象的时候,如果此对象的内存被回收,那么就可以调用系统中...

    Java中finalize()的用法

    Java 中 finalize() 的用法 Java 中的 finalize() 方法是垃圾回收器在回收对象时调用的第一个方法。...finalize() 方法是 Java 中的一种机制,用于释放对象占用的系统资源,但需要正确地使用和注意其调用机制和限制。

    Java禁止使用finalize方法共2页.pdf.zip

    然而,随着Java版本的更新和垃圾收集机制的改进,`finalize()`方法逐渐失去了其原本的重要性,并且由于其潜在的问题和性能影响,现在被官方建议避免使用。本篇文章将深入探讨`finalize()`方法的原理、问题以及替代...

    Java中finalize方法.pdf

    Java中的`finalize()`方法是Java语言提供的一种机制,用于在对象被垃圾回收之前进行资源清理。这个方法在Java的`Object`类中被定义为`protected`类型,因此所有Java类都能够覆盖它来实现特定的清理操作。在垃圾回收...

    Java禁止使用finalize方法

    Java禁止使用finalize方法 Java中的finalize方法是一个特殊的方法,位于Java.lang.Object类中,它的主要作用是允许开发者在对象被垃圾回收前执行一些清理工作。但是,finalize方法存在许多问题,导致它不被推荐使用...

    Java中覆盖finalize()方法实例代码

    Java中的finalize()方法覆盖实例代码详解 finalize()方法是Java中的一个特殊方法,它可以在对象被垃圾回收器回收之前执行一次。这个方法可以用来释放对象持有的资源,但是它的使用需要非常小心,因为它带有很多不...

    Java垃圾回收机制的finalize方法实例分析

    开发者需要牢记finalize方法的特点和应用技巧,以便更好地使用finalize方法。 更多Java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM...

    java面试题 谈谈final, finally, finalize的区别

    在Java编程语言中,`final`, `finally`, 和...而 `finalize` 则是一个与垃圾回收相关的特殊方法,虽然不推荐直接使用,但在特定场景下可以帮助清理资源。在Java面试中,理解和掌握这些关键字的用法是非常基础且重要的。

    Java中finalize()详解及用法

    在Java中,finalize()方法是一个重要的概念,它与final关键字息息相关。下面我们将深入探讨finalize()方法的用法和应用场景。 一、final关键字 final是Java的关键字,它所表示的是“这部分是无法修改的”。在程序...

    Java中针对finalize的实现和相应的执行过程

     这个引用对象专门为带finalize方法的类服务,可以理解为每一个有相应的方法的对象,其都会封装为一种finalRefernece对象.  因为finalize方法是object定义的,其默认实现为空.那么如果重写了此方法,那么方法体...

    简单理解Java的垃圾回收机制与finalize方法的作用

    总结来说,Java的垃圾回收机制和`finalize()`方法是为了解决内存管理问题而设计的,但使用时需谨慎,避免滥用。通常,遵循良好的编程习惯,如使用`try-finally`或`try-with-resources`来管理资源,可以更好地保证...

    java.lang.object源码-finalize-:个人博客(http://bit.ly/javafinalize)上java.lang

    java.lang.object原始码最终不推荐使用java.lang.Object.finalize() 我的博客文章中的示例的Gradle源代码存储库。 在Linux Mint(SUSE Linux)上构建和测试。 由于gradle当前不支持Java 11,因此可以使用标准Java...

    Java9垃圾回收方法finalize() 原理解析

    Java9垃圾回收方法finalize() 原理解析 Java9垃圾回收方法中的finalize()方法是一个特殊的方法,它是Object类中的方法,用于在类被GC回收时做一些处理操作。finalize()方法的主要作用是释放对象占用的资源,例如...

    final、fianlly、finalize区别

    Java 技术允许使用finalize() 方法在垃圾收集器将对象从内存中清除出去 之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对 象调用的。它是在Object 类中定义的,因此所有的类都...

    详解java中finalize的实现与相应的执行过程

    Java中的`finalize`方法是Object类的一个特殊方法,它的主要作用是在对象被垃圾收集器回收前执行清理工作。本文将详细解析`finalize`方法的实现和执行过程。 首先,了解`finalize`方法的用途:当一个对象不再被任何...

    final, finally, finalize的区别

    3. **替代方案**:现代 Java 编程倾向于使用更可靠的资源管理技术,如 try-with-resources 语句或显式资源管理,而非依赖 `finalize`。 总结而言,`final` 关键字用于确保数据的不可变性和安全性;`finally` 块用于...

    Java中final,finally,finalize三个关键字的区别_动力节点Java学院整理

    finalize() 方法主要用途是回收特殊渠道申请的内存,例如 JNI(Java Native Interface)调用 non-Java 程序(C 或 C++)。 final 关键字用于限制变量、方法和类的修改和继承,finally 块用于异常处理中的清理操作,...

    详解Java编程中final,finalize,finally的区别

    当一个对象被垃圾回收器标记为即将回收时,Java会尝试调用该对象的`finalize`方法,提供一个机会进行必要的清理操作。然而,这个方法并不保证一定会被执行,因此不应该依赖它来清理资源。在实际编程中,`finalize`的...

    《剑指offer》Java深入理解final、finally、finalize.pdf

    最后,`finalize`方法是Java对象生命周期的一部分,它在垃圾收集器准备回收对象之前被调用。然而,`finalize`方法现在并不推荐使用,因为它可能导致性能问题和不可预测的行为。垃圾收集器何时调用`finalize`是不确定...

Global site tag (gtag.js) - Google Analytics