71java System类

55 阅读2分钟

System类

System类是一直使用的类,一直用它进行信息的输出打印。实际上在之前学习过的数组拷贝就属于System类中的一个方法,

 

方法的正确定义:

public static void arraycopy(Obiect src,int srcPos,Obiect dest,int destPos,int length);

 

在这个类中提供有一个取得当前日期时间数的方法:

public static long currentTimeMillis();通过此方法可以取得某一个操作所花费的时间。

 

二、范例:观察这个方法的使用如下图所示

当然,操作长的话,时间也会长,它是一个以毫秒的数量。

 

但是在System类里面有一个方法:

public static voic gc(),也提供有一个垃圾收集方法。

这个方法并不是新的实现,而是调用了Runtime类中的gc()操作。 gc()方法只有一个,这个方法用的是native去实现终止。

 

在这之前一直强调过一个概念:

一个类对象的创建一定要使用构造方法,那么一个对象如果不使用了,就应该被释放,那么被释放的时候应该也有一个方法支持才对。

所以此时如果要想做这种收尾的操作,可以让一个类去覆写Obiect类中的finalize()方法。

 

此方法定义如下:

protected void finalize()throws Throwable。我们能处理的是Succession,Throwable包含有error。

在这个地方,把throwable抛出,抛出是不是处理我们不得而知,至少证明一点,这个方法产生了错误。

无论在finalize()方法里面是否出现异常或者是错误,结果不会改变,并且也不会导致程序出错。

 

三、面试题:

请解释final、finally、finalize的区别?

final是一个关键字,用于定义不能够被继承的父类、不能够被覆写的方法、常量;

finally:是异常处理的统一出口;

Finalized:是Object类中的一个方法,用于在对象回收前进行调用。