• 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("我被回收了");
        }
    }

    输出

  • 相关阅读:
    Docker容器(分享十五)
    oracle数据库迁移主从复制ADG(分享十四)
    mysql数据库迁移主从复制(分享十三)
    rsync+inotify实现服务器之间文件实时同步(分享十三)
    mysql数据库迁移(分享十二)
    数据库迁移(分享十一续集)
    Codeforces 1185G2 Playlist for Polycarp (hard version) 背包,暴力
    Codeforces 747F Igor and Interesting Numbers DP 组合数
    Codeforces 745E Hongcow Buys a Deck of Cards 状压DP / 模拟退火
    Codeforces 1140F 线段树 分治 并查集
  • 原文地址:https://www.cnblogs.com/longesang/p/11250533.html
Copyright © 2020-2023  润新知