28.2 api-- System (gc、arraycopy、exit)

/*
* System:包含一些有用的类字段和方法。它不能被实例化
* static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
* static long currentTimeMillis()
* static void exit(int status)
static void gc() 运行垃圾回收率器
*
*/

 

public class SystemDemo {
    public static void main(String[] args) {
//        exitMethod();
//        timeMethod();
//        copyarrayMethod();


    }

    private static void copyarrayMethod() {
        /*
         * arraycopy: static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
         * 复制数组
         * 参数1:源数组
         * 参数2:源数组的起始索引位置
         * 参数3:目标数组
         * 参数4:目标数组的起始索引位置
         * 参数5:指定接受的元素个数
         */
        int[] arr = {1,2,3,4,5};
        int[] arr2 = new int[5];
        System.arraycopy(arr,0,arr2,0,3);
        for(int i=0;i<arr2.length;i++) {
            System.out.print(arr2[i]);
        }
    }

    private static void timeMethod() {
        /*
        * currentTimeMillis: public static long currentTimeMillis()
        * 以毫秒值返回当前系统时间,这个毫秒的时间是相对时间,相对于1970-1-1 00:00:00到当前系统时间的差值
         *  1970-1-1 00:00:01 : 1000
         *  1970-1-1 00:01:00: 1000 * 60
         *  1970-1-1 01:00:00: 1000 * 60 * 60
         *  1000毫秒 = 1秒
        **/
//        System.out.println(System.currentTimeMillis());
        long start = System.currentTimeMillis();
        for(int i=0;i<10000;i++) {
            System.out.println(i);
        }
        long end = System.currentTimeMillis();
        System.out.println(end - start);
    }

    //抽取方法ctrl+alt+m
    private static void exitMethod() {
        //exit : public static void exit(int status)
        for(int i=0;i<100000;i++) {
            System.out.println(i);
            if(i==100) {
                System.exit(0);
            }
        }
    }


}

 

 

 

gc

系统会默认调用gc进行垃圾回收,一般不用手动调用。

/*
* public static void gc()
* 运行垃圾回收器。
*调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。
*
* object.finalize
* protected void finalize()
* 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写 finalize 方法,以配置系统资源或执行其他清除。
**/

public class GcDemo {
    public static void main(String[] args) {
        new FinalizeDemo();

        System.gc();

    }
}

class FinalizeDemo {
    @Override
    protected void finalize() throws Throwable {
        System.out.println("我被回收了");
    }
}

输出

 

posted @ 2019-07-26 15:16  龙桑  阅读(188)  评论(0编辑  收藏  举报