Java学习总结:33(System类)

System类

System类的方法

No. 方法 类型 描述
1 public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length) 普通 数组粘贴操作
2 public static long currentTimeMillis() 普通 取得当前的日期时间,以long型数据返回
3 public static void gc() 普通 垃圾收集

currentTimeMillis()方法

例:观察currentTimeMillis()方法的使用

package Project.Study.SystemClass;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Test1 {
    public static void main(String[]args){
    	//取得开始时间
        long start=System.currentTimeMillis();	//currentTimeMillis()返回以毫秒为单位的当前时间
        String str="";
        for(int x=0;x<30000;x++){
            str+=x;
        }
        long end=System.currentTimeMillis();    //currentTimeMillis()返回以毫秒为单位的当前时间
        System.out.println("开始时间:"+start);
        SimpleDateFormat start1 = new SimpleDateFormat("yyyy年-MM月dd日-HH时mm分ss秒");
        Date date1 = new Date(start);
        System.out.println(start1.format(date1));
        System.out.println("结束时间:"+end);
        SimpleDateFormat end2 = new SimpleDateFormat("yyyy年-MM月dd日-HH时mm分ss秒");
        Date date2 = new Date(end);
        System.out.println(end2.format(date2));
        System.out.println("本次操作所花费的时间:"+(end-start));
    }
}
//结果:
//开始时间:1585573645695
//2020年-03月30日-21时07分25秒
//结束时间:1585573646162
//2020年-03月30日-21时07分26秒
//本次操作所花费的时间:467(毫秒)

System类的gc()方法

该gc()方法不算一个新的操作方法,它是间接调用了Runtime类中的gc()方法,不表示一个重写的方法。所以调用System.gc()和调用Runtime.getRuntime().gc()最终的效果是完全一样的。

对象回收

如果要产生一个对象,可以通过构造方法处理一些对象产生时的操作,同样当一个对象被回收时,我们也可以做一些收尾工作,可以通过finalize()方法实现,此方法由Object类定义。 对象回收方法如下:

protected void finalize() throws Throwable

例:对象回收操作

package Project.Study.SystemClass;

class Human{
    public Human(){
        System.out.println("一个健康的孩子出生了");
    }
    protected void finalize()throws Throwable{		//覆写Object类方法
        System.out.println("修仙活了200年,到时候了");
        throw new Exception("此处即使抛出异常对象也不会产生任何影响");
    }
}
public class Test2 {
    public static void main(String[]args){
        Human men=new Human();	//实例化新的对象
        men=null;				//产生垃圾
        System.gc();			//手工处理垃圾收集
    }
}
//结果:
//一个健康的孩子出生了
//修仙活了200年,到时候了

通过上程序我们可以看到,当一个对象的堆内存空间即将被回收后将自动调用finalize()方法,这样就可以进行一些对象回收前的收尾工作。并且此方法即使产生任何异常或错误,也不会影响程序的正常执行。

发布了49 篇原创文章 · 获赞 25 · 访问量 1514

猜你喜欢

转载自blog.csdn.net/weixin_45784666/article/details/105208233
今日推荐