`

java 中的finalize方法

    博客分类:
  • Java
阅读更多
java 中的finalize()方法是为了清除那些不是用new 创建的内存,因为java的垃圾回收器只回收new 创建的内存,且只有当垃圾回收器启动时才会执行finalize()方法,而java中一切皆为对象,似乎没有必要用到finalize()方法,其实finalize()的最大用处在于java可以调用c或c++写的程序,除非你用c/c++里的free(),否则它不会自动释放内存,其后free()是c/c++里的方法,因此你得在finalize()里用native method(java对其它语言的支持)方法调用free();

另外,finalize方法还有另一个重要的用处,那就是检查对象的清理条件:如当要清理的对象为一个打开的文件时,那么当你清理时,你应该确保文件是关闭的,可以调用System.gc()方法启动垃圾回收器.
分享到:
评论

相关推荐

    Java中finalize方法使用.doc

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

    Java中finalize方法.pdf

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

    Java中finalize()的用法

    Java 中的 finalize() 方法是垃圾回收器在回收对象时调用的第一个方法。finalize() 方法相当于析构函数,它是垃圾回收器回收一个对象时第一个要调用的方法。finalize() 方法的主要作用是释放对象占用的系统资源,...

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

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

    Java中finalize()详解及用法

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

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

    在Java编程语言中,`finalize()`方法是一个特殊的方法,它属于`Object`类,主要用于对象销毁前执行一些必要的清理工作。然而,随着Java版本的更新和垃圾收集机制的改进,`finalize()`方法逐渐失去了其原本的重要性,...

    Java禁止使用finalize方法

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

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

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

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

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

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

    Java垃圾回收机制的finalize方法是垃圾回收机制中一个非常重要的概念,它可以帮助开发者更好地理解和掌握垃圾回收机制的工作机理。本文将通过实例形式分析finalize方法的特点及在垃圾回收机制中的相关操作技巧。 一...

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

    在Java编程语言中,`final`, `finally`, 和 `finalize` 是三个非常重要的关键字,它们各自扮演着不同的角色,尤其在处理程序的可预测性、数据的不可变性和垃圾回收等方面。下面将详细阐述这三个关键字的区别及其应用...

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

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

    java中 final, finally, finalize 的区别

    java中final, finally, finalize 的区别

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

    Java编程中的`final`, `finalize`, 和`finally`是三个重要的关键字,它们各自在不同的场景下发挥着关键作用。理解这三个关键字的区别对于Java开发者来说至关重要,尤其是在面试中常常会被问及。 首先,`final`是一...

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

    Java中的`finalize()`方法是对象生命周期的一部分,它与C++中的析构函数类似,但在功能和调用时机上有所不同。`finalize()`方法是在对象被GC标记为可回收并准备释放之前调用的,提供了在对象被彻底删除前执行某些...

    详谈Java中Object类中的方法以及finalize函数作用

    Object类中包含了一些基础且重要的方法,这些方法在Java编程中扮演着关键角色。接下来我们将详细讨论这些方法以及`finalize()`函数的作用。 1. `clone()`方法:这是一个保护方法,用于实现对象的浅复制。如果一个类...

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

    3. finalize中的错误可能导致内存泄漏。 4. 如果不在需要时,也没有办法取消垃圾回收。 5. 并且没有办法保证finlize的执行时间。 在JDK9中,finalize()方法已经被废除,取而代之的是Cleaner类。Cleaner类提供了一个...

    java中相似概念的区别

    现代Java版本中,更倾向于使用显式资源管理或尝试-资源语句来替代`finalize`方法的使用。 ### HashMap与Hashtable #### HashMap `HashMap`是Java集合框架中的一部分,提供基于哈希表的键值对存储。它允许单个空键...

    Java垃圾回收finalize()作用详解

    `finalize()`方法是在`Object`类中定义的,这意味着所有Java类都默认继承了这个方法。然而,通常情况下,`finalize()`方法是不需要程序员去实现的,因为垃圾收集器的自动清理已经足够处理大部分情况。只有在特殊情况...

Global site tag (gtag.js) - Google Analytics