java基础类库(九)_2.System.类

知识点:

1.如何计算某个代码的执行时间。

2.进行垃圾收集操作。

具体内容(了解):

    之前使用的”System.out.println()“就属于System类的操作功能。另外还有一个System.arraycopy()方法实现数组拷贝,而这个方法的真实定义如下:public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

   在System类里面定义有一个重要的方法:

  • 取得当前的系统时间:public static long currentTimeMillis()

范例:请统计某项操作的执行时间

package 算法;

import java.io.IOException;

public class TestDemo {
	public static void main(String args[]) throws IOException, InterruptedException{
	    long start = System.currentTimeMillis();
	    String str = "";
	    for(int x=0;x<3000;x++){
	    	str +=x;
	    }
	    long end =  System.currentTimeMillis();
	    System.out.println("本次操作所花费的时间:"+(end-start));
	    
		
	}
}

如果想统计出花费的毫秒实践,就用long型数据直接进行数据计算后得来。

在System类里面定义勒一个操作方法:public static void gc(),这里的GC()其实就是间接调用了Runtime里面的gc()方法。

  对象产生一定会调用构造方法,可以进行一些处理操作,但是某一个对象如果要被回收了,那么连一个收尾的机会都没有。如果要给一个收尾的机会,那么久可以考虑覆写Object类中的finalize()方法完成。

package 算法;

class Member{
	public Member(){
		System.out.println("噼里啪啦,祸害诞生了!");
	}
}

public class TestDemo {
	public static void main(String args[]){
		Member mem = new Member();  //会出现一些出生时的辅助操作
		mem = null;    //会产生垃圾
	}
}

finalize()方法定义:protected void finalize() throws Throwable(Throwable是异常处理的最大父类)

      在对象回收时就算抛出勒任何的异常,也不会影响到整个程序的正常运行。

package 算法;

class Member{
	public Member(){
		System.out.println("噼里啪啦,祸害诞生了!");
	}

	@Override
	protected void finalize() throws Throwable {
		System.out.println("祸害死了!");
		throw new Exception("老子十八年后继续祸害全世界,于是自己死了!");
		
	}
	
}

public class TestDemo {
	public static void main(String args[]){
		Member mem = new Member();  //会出现一些出生时的辅助操作
		mem = null;    //会产生垃圾
		System.gc();   //手工处理垃圾收集
	}
}

   构造方法是留给对象初始化时使用的,而finalize()方法是留给对象回收前使用的。

面试题:请解释final、finally、finalize的区别?

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

总结:

1.System类可以使用currentTimeMillies()方法取得当前的系统时间;

2.System类中的gc()方法就直接调用了“Runtime.getRuntime().gc()”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值