0 0

Object类中finalize为啥没有实现5

最近在看java垃圾回收方面的知识,听周大师说,gc是调用finalize来实现垃圾会回收。但是,我发现 Object中的类只是申明了一下,并没有实现,方法也不是用native关键字修饰的,我再随便看了一个子类如BigDecimal ,也没得重写这个函数?那 finalize是怎么实现的呐?
    protected void finalize() throws Throwable { }
2013年3月09日 15:12

4个答案 按时间排序 按投票排序

0 0

周大师说finalize方法的执行是由一条级别非常低的线程执行,该线程是对F-Queue操作的,只有重写了该方法的类才会被加进这个队列,也就说没有重写该方法的类的实例的回收不是用此方法回收的,jdk里面的类没有重写该方法,据周大师的说法设个方法的效率低,又占资源,说不推荐使用这个方法。估计你还没看完周大师的书吧

2013年3月10日 23:26
0 0

参考文档连接;
http://www.iteye.com/topic/484934
http://blog.csdn.net/a511596982/article/details/8042820
希望能帮上忙

2013年3月10日 10:37
0 0

这个方法用于你自己的特殊需求,在你的子类中实现自己的逻辑,一般来说用不到,所以是空的

2013年3月09日 17:13
0 0

推荐您看下  JVM虚拟机技术  上面有关于垃圾回收机制的解释。

2013年3月09日 16:36

相关推荐

    Java中finalize()的用法

    在 Java 中,finalize() 方法是 Object 类的一个方法,默认情况下,纯 Java 编写的 Class 不需要重新覆盖这个方法。只有在特殊情况下,例如使用 JNI 或 C++ 编写的 Class 时,需要覆盖默认的 finalize() 方法,以...

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

    Java中的Object类是所有类的根,每个自定义类如果没有明确指定父类,都将默认继承Object。Object类中包含了一些基础且重要的方法,这些方法在Java编程中扮演着关键角色。接下来我们将详细讨论这些方法以及`finalize...

    Object类和Scanner类

    除了 `Object` 类之外,给定内容中还提到了 `Scanner` 类,这是一个用于读取简单数据类型(如整数、浮点数)以及字符串的基本类。`Scanner` 类位于 `java.util` 包中,常用于控制台输入处理。尽管没有给出具体示例...

    Java Object类认识

    在Java编程语言中,`Object`类是所有类的根,每个自定义类如果没有明确指定父类,都默认继承自`Object`。因此,对`Object`类的理解是每个Java开发者的基本功。本文将深入探讨`Object`类,以及其核心方法`equals()`与...

    Java中finalize方法使用.doc

    在 Java 中,finalize 方法是一个 protected 方法,它是 Object 类中的一个方法。所有的 Java 对象都继承自 Object 类,因此都可以使用 finalize 方法。 finalize 方法的调用是在垃圾回收器回收对象之前进行的。...

    JAVA之Object类所有方法

    在Java编程语言中,`java.lang.Object`是所有类的根类,无论是用户自定义类还是内置类,它们都直接或间接地继承自Object类。这个类提供了许多基础方法,这些方法对于对象的操作和管理至关重要。现在,我们将深入探讨...

    java中的Object类[文].pdf

    `clone()`方法用于创建当前对象的一个副本,但是这个方法在`Object`类中是受保护的,需要在子类中重写为公开的(public)并实现具体复制逻辑,通常用于深拷贝或浅拷贝。 3. **`equals()`和`hashCode()`方法**: `...

    Java面向对象(进阶)- Object类的详细概述

    即使我们没有显式声明父类,Java编译器也会将默认的父类设置为Object。 - 每个对象,包括数组,都可以调用Object类的方法,因为它们本质上都是对象,具有Object类的特征。 - 如果你尝试创建一个名为Object的自定义...

    Java中finalize方法.pdf

    这个方法在Java的`Object`类中被定义为`protected`类型,因此所有Java类都能够覆盖它来实现特定的清理操作。在垃圾回收器准备回收一个不再被引用的对象时,会尝试调用该对象的`finalize()`方法,这个过程类似于C++中...

    学习Object类——为什么要重写equeals和hashcode方法

    此外,Object 类的设计是为了扩展,它提供了一些非 final 方法,如 equals、hashCode、toString、clone 和 finalize,这些方法都有通用的约定,需要在子类中被覆盖(override)。如果不遵守这些约定,依赖这些约定的...

    JavaSE之Object与Object类

    在Java编程语言中,`Object`类是所有类的根类,这意味着无论是自定义的类还是内置的类,它们最终都会继承自`Object`。这个类包含了一些基础的方法,供所有的Java对象使用。以下是关于`Object`类及其相关知识点的详细...

    Java面试题,他会给你很好的Java面试准备,第一,谈谈final, finally, finalize的区别,第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

    它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。 另外,在Java面试中,Anonymous Inner Class(匿名内部类)也是一个重要的知识点。匿名内部类是...

    Java程序设计:020611_Object类.ppt

    在Java编程语言中,Object类是一个非常基础且重要的类,它是所有类的终极父类。这意味着,无论我们自定义的类是否显式声明了继承,它们实际上都是Object类的间接子类。`Java程序设计:020611_Object类.ppt`这个资料...

    Object类常用方法(csdn)————程序.pdf

    任何类,如果没有书写 extends 显式继承某个类,都默认直接继承 Object 类,否则为间接继承。Object 类中所定义的方法,是所有对象都具备的方法。 Object 类型可以存储任何对象,可以作为参数,接受任何对象,也...

    Java Object 类高难度进阶版面试题集锦解析Java Object类高难度面试题及答案解析

    Java Object 类是所有Java类的根类,每个自定义的Java类都会无意识或有意识地继承Object类。Object类提供了几个核心的方法,这些方法在处理对象时非常关键,包括equals()、hashCode()、toString()、clone()、...

    Chp10 Object类与常用类,内部类.pdf

    在Java编程语言中,`Object`类是一个非常关键的类,它是所有类的基类,位于Java继承体系的顶端。这意味着无论是自定义的类还是Java内置的类,最终都会继承自`Object`类。通过这个特性,我们可以对任何类型的对象进行...

    final, finally, finalize的区别

    `finalize` 是 `Object` 类中的一个方法,用于对象的垃圾回收过程。当一个对象不再被引用且即将被垃圾回收器(GC)回收时,如果该对象实现了 `finalize` 方法,那么在 GC 执行前,会调用该对象的 `finalize` 方法。...

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

    FinalReference引用 ...  因为finalize方法是object定义的,其默认实现为空.那么如果重写了此方法,那么方法体肯定不为空.即可以通过这一种区别来.只要finalize方法实现不为空的类,此产生的对象都需要被注册到fi

    302.300.JAVA基础教程_面向对象(中)-Object类综合练习(302).rar

    本教程“302.300.JAVA基础教程_面向对象(中)-Object类综合练习(302)”旨在深入讲解`Object`类及其相关知识点,通过一系列练习帮助初学者巩固对Java面向对象的理解。 `Object`类是Java标准库中的基类,位于`java....

Global site tag (gtag.js) - Google Analytics