Java学习提要——System类基本

来源:互联网 发布:php自学要多久 编辑:程序博客网 时间:2024/04/29 22:27

1.取得当前的系统时间:

格式:public static long currentTimeMillis()
例:

//取得程序执行的时间public class Nice {    public static void main(String args[]) throws Exception {        long start = System.currentTimeMillis() ; //取得开始时间        String str = " ";        for(int x=0 ; x < 30000 ; x++) {            str += x ;        }        long end = System.currentTimeMillis() ; //取得结束时间        System.out.println("本次程序花费的时间 = " + (end - start));    }}//输出结果为毫秒时间,因为是long型数据直接进行数学计算后得来的

2.gc()方法与finalize()方法

System类里面定义了一个操作方法: public static void gc()
在Runtime类中,也有gc(),
其实呢,System类的 gc()方法,并不是一个新定义的方法,而是调用了Runtime类中的 gc()方法

The call System.gc() is effectively equivalent to the call :
  Runtime.getRuntime().gc()

对象产生一定会调用构造方法,可以进行一些处理操作,但是如果被回收,什么都没有,
那么,此时可以覆写Object类的finalize()方法,来给对象收尾
格式: protected void finalize() throws Throwable
  在对象回收时就算抛出任何异常,也不会影响整个程序的正常执行

ps.
protected 是可以被同一包的类和不同包的子类调用
Throwable 是异常处理的最大父类,下面两个子类,Exception和error

例:

class Bad {    public Bad () {        System.out.println("bad is coming");    }    protected void finalize() throws Throwable {        System.out.println("bad is dead") ;  //给对象收尾        throw new Exception("aaaaaaaaa");  //不会显示    }}public class Nice {    public static void main(String args[]) throws Exception {        Bad bad = new Bad() ;  //会出现实例化时的辅助操作        bad = null ;  //会产生垃圾        System.gc() ;  //手工处理,调用gc()    }}//构造方法是留给对象初始化时使用的,而finalize()方法是留给对象使用的//有点像c++里的析构函数

3.final、finally、finalize的区别

解释:
final:关键字,定义不能被继承的类,不能被覆写的方法、常量
fianlly:关键字,异常的统一出口
finalize:方法,Object类提供的方法(protected void finalize() throws Throwable),指的是对象回收前的收尾方法,即使出现了异常也不会导致程序中断执行

0 0
原创粉丝点击