博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 基础知识 finalize方法
阅读量:2208 次
发布时间:2019-05-04

本文共 1408 字,大约阅读时间需要 4 分钟。

每个class 可以override 一个finalize()方法

这个方法有什么用呢?

perform the cleanup

上面是官方的描述

对的,只是perform,并不实际执行资源释放

只是留条路给你perform一些东西


这个方法是由garbage collector 调用的

调用的条件是:

garbage collection 认为你这个对象没有什么用了

而使garbage collector 活动又有条件:

1.JVM的资源不太够用了,需要释放一部分没有用的资源

2.调用System.gc() 方法,主动让JVM去释放资源

finalize()方法原本的描述是这样的:

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

例:

class TT{
public void finalize() {
System.out.println("it will be desroyed"); } }public class Finalize {
public static void main(String[] args) {
TT a=new TT(); System.out.println("it is bulided"); a=null; System.out.println("it got null now"); System.gc(); //call the JVM to take resource back // and JVM invoke the finalize() to perform the cleanup } }

输出结果:

it is bulided

it got null now
it will be desroyed

不过,我发现,其实不只有=null 这一种方法

这个对象在之后没用了,一样可以使garbage collector 调用finalize()方法

例:

public class Finalize {	public static void main(String[] args) {		TT a=new TT();		System.out.println("it is bulided");		//a=null;		System.out.println("it got null now");		for(int i=0;i<10000000;i++);		System.gc();  //call the JVM to take resource back					  // and JVM invoke the finalize() to perform the cleanup			}	}

输出结果:

it is bulided

it got null now
it will be desroyed


最后补充一点:

还有挺多类似finalize() 的方法

比如说,init(),destroy()

这些方法的主要意义就是perform

实际进行初始化,销毁操作的,并不是我们

转载地址:http://hoiyb.baihongyu.com/

你可能感兴趣的文章
Windows程序设计:直线绘制
查看>>
linux之CentOS下文件解压方式
查看>>
Django字段的创建并连接MYSQL
查看>>
div标签布局的使用
查看>>
HTML中表格的使用
查看>>
(模板 重要)Tarjan算法解决LCA问题(PAT 1151 LCA in a Binary Tree)
查看>>
(PAT 1154) Vertex Coloring (图的广度优先遍历)
查看>>
(PAT 1115) Counting Nodes in a BST (二叉查找树-统计指定层元素个数)
查看>>
(PAT 1143) Lowest Common Ancestor (二叉查找树的LCA)
查看>>
(PAT 1061) Dating (字符串处理)
查看>>
(PAT 1118) Birds in Forest (并查集)
查看>>
数据结构 拓扑排序
查看>>
(PAT 1040) Longest Symmetric String (DP-最长回文子串)
查看>>
(PAT 1145) Hashing - Average Search Time (哈希表冲突处理)
查看>>
(1129) Recommendation System 排序
查看>>
PAT1090 Highest Price in Supply Chain 树DFS
查看>>
(PAT 1096) Consecutive Factors (质因子分解)
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>
(PAT 1073) Scientific Notation (字符串模拟题)
查看>>
(PAT 1080) Graduate Admission (排序)
查看>>