java的析构函数,Java的析构函数System的finalize()

一个对象是由产生 到使用 到销毁的过程

即C++中 构造函数-> body->析构函数

在Java之中为了回收不需要的空间可以使用System类的finalize()

class A{

public A(){

System.out.println("A产生了!");

}

public void finalize(){

System.out.println("A消亡了!");

}

}

public class Thrd{

public static void main(String[] args) {

A a=new A();

a=null;//指向了其他,产生了垃圾

System.gc();//手工回收垃圾

}

}

结构:protected void finalize()Throws Throwable{}

抛出的是Throwable(Error+Exception)也就是说不管是否有异常,都会讲这个对象消亡

抛出异常测试:

class A{

public A(){

System.out.println("A产生了!");

}

protected void finalize() throws Throwable{

System.out.println("A消亡了!");

throw new Exception("产生了异常");//实例化异常类+抛出异常信息

}

}

public class Thrd{

public static void main(String[] args) {

A a=new A();

a=null;//指向了其他,产生了垃圾

System.gc();//手工回收垃圾

}

}

异常并没有抛出

final finally finalize区别

final关键字 定义最终类,常量

finally异常的出口

finalize对象回收的的方法,即使出现异常也不会影响执行

java hadoop file system API

org.apache.hadoop.fs Class FileSystem java.lang.Object org.apache.hadoop.fs.FileSystem All Implement ...

Java连载57-equals重写、finalize方法、hashCode方法​

一.关于java语言中如何比较两个字符串是否一致 1.不能使用双等号来比较两个字符串是否相等,应该使用equals方法进行比较,如例子 package com.bjpowernode.java_lea ...

1.Java基础之System对象

毕向东老师Java基础学习笔记——System对象 今天学习Java中的System对象后,感觉这个对象对我们主要有以下几点用处. 1.获取当前操作系统版本和类型. 2.获取当前操作系统的path中的 ...

Java 中的System.exit

在java 中退出程序,经常会使用System.exit(1) 或 System.exit(0). 查看System.exit()方法的源码,如下 /** * Terminates the curre ...

JAVA中的System.in

System.in读取标准输入设备数据(从标准输入获取数据,一般是键盘),其数据类型为InputStream.方法: int read()   // 返回输入数值的ASCII码,,该值为0到 255范 ...

java中的System.copyof()与Array.copyof()区别

java中的System.copyof()与Array.copyof()区别 在复制数组时我们可以使用System.copyof(),也可以使用Array.copyof(),但是它们之间是有区别的.以 ...

Java基础 之 System.getProperty()方法

Java基础 之 System.getProperty()方法大全 public static void main(String[] args) { System.out.println(" ...

随机推荐

分组统计并计算每组数量sql

有 字段A 和B比如数据如下A  B1  21  31  4 2  22  3 统计出的sql结果: A   count 1   3 2   2 select a,count(b) from t gr ...

如何在mac上安装gradle

首先,先download最新版本的gradle,网址如下:http://www.gradle.org/get-started然后将下载下来的zip包放在你要安装的路径上,我安装在/usr/local/ ...

转载:hdu 动态规划题集

1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955     背包;第一次做的时候把概率当做背包(放大100000倍化为整数): ...

HTTP状态码参考

1. HTTP状态码意义 客户机与服务器建立连接后,发送一个请求给服务器(如:Get /index.html http/1.1),在服务器接到请求后,给予客户机相应的响应信息,包括该信息的协议版本号. ...

PHP学习心得(八)——运算符

运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西.所以可以认为函数或任何会返回一个值(例如 print)的结构是运算符,而那些没有返回值的( ...

野指针、NULL指针和void*

一.野指针 “野指针”不是NULL指针,是指向“垃圾”内存的指针. “野指针”的成因主要有三种: (1)指针变量没有被初始化.任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱 ...

C++内存管理学习笔记(5)

/****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

Python 类方法

class Person: # 实例方法 def chi(self): print("人会吃") @classmethod # 装饰器, 此时这个方法是一个类方法 def he(c ...

清华集训2015-Day 1

玛里苟斯 一个大小为 \(n\) 的可重集合 \(a\) ,求 \(\mathbb E[x^k]\) ,其中 \(x\) 为 \(a\) 的一个子集的异或和. \(n\le 10^5,1\le k\l ...