题目:修改前一个练习程序,让你的finalize方法总会被调用
分析:上一个例子中我们使用system.gc方法,但是偶尔会出现finalize方法不会被调用的情形。那是因为
System.gc();
//告诉垃圾收集器打算进行垃圾收集,而垃圾收集器进不进行收集是不确定的
而
System.runFinalization();
//强制调用已经失去引用的对象的finalize方法
所以如果用runFinalization方法的话,那finalize方法绝对会被调用。
public class test { @Override public void finalize(){ System.out.println("start finalize "+this); } public static void main(String[] args) { test t=new test(); t=null; System.gc(); System.runFinalization(); } }
注意的是,要先嗲用gc方法再调用runFinalization方法,
写道
System.gc(); hints the VM that it is probably time to activate the Thread doing to the Garbage Collection. So all the part of this sentence stands in the hint word. The finalizer are run according to the VM good will, generally speaking. This means they could be run or could not.
Invoking the System.runFinalization( ); force the VM to invoke on each instance the finalizer when it Garbage collects the Object referenced
相关推荐
第5章 隐藏实施过程 5.1 包:库单元 5.1.1 创建独一无二的包名 5.1.2 自定义工具库 5.1.3 利用导入改变行为 5.1.4 包的停用 5.2 Java访问指示符 5.2.1 “友好的” 5.2.2 public:接口访问 5.2.3 private:不能接触 ...
《Java编程思想》是 Bruce Eckel 的经典著作,旨在深入阐述Java编程语言的核心概念和机制。这本书强调了Java作为一门“纯粹”的面向对象语言,与C++相比,它在设计时更加注重对象导向的本质。虽然C++和Java都是混合...
Java 编程思想第四版读书笔记推荐.pdf 以下是从给定的文件信息中生成的相关知识点: 1. 面向对象程序设计(Object-oriented Programming OOP) * UML(Unified Modeling Language 统一建模语言) * 将对象想像成...
Java 中的 finalize() 方法是垃圾回收器在回收对象时调用的第一个方法。finalize() 方法相当于析构函数,它是垃圾回收器回收一个对象时第一个要调用的方法。finalize() 方法的主要作用是释放对象占用的系统资源,...
### Java编程思想笔记 #### 重要知识点概览 在深入探讨《Java编程思想笔记》时,我们可以提炼出一系列核心概念和技巧,它们是理解和掌握Java编程语言的关键。本笔记覆盖了从基本的数据类型、对象创建到高级的多态...
### Java基础知识练习题详解 #### 1. 无法读取xxx.java 文件 - **问题解析**:如果遇到“无法读取 xxx.java”这样的错误提示,通常意味着文件路径不正确、文件不存在或者没有权限访问该文件。 - **解决方法**: - ...
finalize 方法是 Java 编程语言中一个非常重要的方法,它与 Java 编程中的垃圾回收器有着紧密的关系。当一个对象变成一个垃圾对象的时候,如果此对象的内存被回收,那么就可以调用系统中定义的 finalize 方法来完成...
`super()`和`this()`方法只能在构造函数的第一行调用,用于调用父类的构造函数或本类的另一个构造函数。 15. **方法参数能否为`final`** - **知识点**: 方法参数的`final`修饰。 - **解析**: 错误。方法的参数...
《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的程序员来说都是极好的学习资源。PDF版使得读者可以随时随地电子阅读,方便快捷。 首先,Java...
在Java编程语言中,`finalize()`方法是一个特殊的方法,它属于`Object`类,主要用于对象销毁前执行一些必要的清理工作。然而,随着Java版本的更新和垃圾收集机制的改进,`finalize()`方法逐渐失去了其原本的重要性,...
Java编程语言练习题详解 1. 是非题 1. **正确**:所谓缺省构造函数就是没有参数的构造函数。Java允许类定义一个无参构造函数,方便实例化对象。 2. **错误**:Java的char数据类型是16位的,它可以表示Unicode字符...
在本课程"【IT十八掌徐培成】Java基础第26天-03.JVM结构-finalize-gc"中,我们将深入探讨JVM的结构、`finalize`方法以及垃圾收集(Garbage Collection,简称GC)机制。以下是这些主题的详细阐述: 1. JVM结构: - ...
以上就是根据给定的Java练习题解析的相关知识点,涵盖了Java的基本语法、类和对象、文件操作、多线程、GUI编程、垃圾回收以及面向对象编程的核心概念。理解并掌握这些知识点对于学习和使用Java编程至关重要。
SCJP(Sun Certified ...通过这些经典练习题的解答,考生不仅可以巩固Java编程的基础,还能提高问题解决能力和编程思维。在准备SCJP认证的过程中,考生应系统学习这些知识点,并通过大量练习来加深理解和应用。
### Java练习题库知识点解析 #### 一、Object类及其方法 **1. Object类概述** - **Object类**: 是所有Java类的根类,它位于`java.lang`包中,提供了许多基本的方法,这些方法可以被其他任何类继承并使用。 - **...
Java中的`finalize()`方法是Java语言提供的一种机制,用于在对象被垃圾回收之前进行资源清理。这个方法在Java的`Object`类中被定义为`protected`类型,因此所有Java类都能够覆盖它来实现特定的清理操作。在垃圾回收...