题目:修改前一个练习程序,让你的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 中的 finalize() 方法是垃圾回收器在回收对象时调用的第一个方法。finalize() 方法相当于析构函数,它是垃圾回收器回收一个对象时第一个要调用的方法。finalize() 方法的主要作用是释放对象占用的系统资源,...
### 第5章 隐藏实现 - **5.1 封装:库单元** - 介绍了封装的概念,以及如何通过封装来隐藏实现细节。 - 包括创建独一无二的封装名等内容。 这些章节覆盖了Java编程的基础知识,从面向对象的基本概念出发,逐步...
### Java基础知识练习题详解 #### 1. 无法读取xxx.java 文件 - **问题解析**:如果遇到“无法读取 xxx.java”这样的错误提示,通常意味着文件路径不正确、文件不存在或者没有权限访问该文件。 - **解决方法**: - ...
通过这些练习,初学者可以逐步熟悉Java的语法特性,掌握面向对象编程的基本思想,同时提升解决问题的能力。每个练习都是对前一知识点的巩固和深化,逐步构建起完整的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类都能够覆盖它来实现特定的清理操作。在垃圾回收...