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类中的一个方法,用于在对象回收前进行调用。