• 45_System类


    第45章 System类

    作者:张子默

    java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:

    • public static long currentTimeMillis():返回以毫秒为单位的当前时间。
    • public static void arraycopy(Object src, int srcPos, int dest, int desPos, int length):将数组中指定的数据拷贝到另一个数组中。

    一、currentTimeMillis方法

    实际上,currentTimeMillis方法就是获取当前系统时间与1970年1月1日00:00点之间的毫秒差值

    import java.util.Date;
    public class SystemDemo {
        public static void main(String[] args) {
            //获取当前时间毫秒值
            System.out.println(System.currentTimeMillis()); // 1516090531144
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    练习

    验证for循环打印数字1-9999所需使用的时间(毫秒)

    public class SystemTest1 {
        public static void main(String[] args) {
            long start = System.currentTimeMillis();
            for (int i = 0; i < 10000; i++) {
    	        System.out.println(i);
            }
            long end = System.currentTimeMillis();
            System.out.println("共耗时毫秒:" + (end - start));
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    二、arraycopy方法

    • public static void arraycopy(Object src, int srcPos, int dest, int desPos, int length):将数组中指定的数据拷贝到另一个数组中。

    数组拷贝的动作是系统级的,性能很高。System.arraycopy方法具有5个参数,含义分别为:

    参数序号参数名称参数类型参数含义
    1srcObject源数组
    2srcPosint源数组索引起始位置
    3destObject目标数组
    4destPosint目标数组索引起始位置
    5lengthint复制元素个数

    练习

    将src数组中前3个元素,复制到dest数组的前3个位置上复制元素前:src数组元素[1,2,3,4,5],dest数组
    元素[6,7,8,9,10]复制元素后:src数组元素[1,2,3,4,5],dest数组元素[1,2,3,9,10]

    import java.util.Arrays;
    public class Demo11SystemArrayCopy {
        public static void main(String[] args) {
            int[] src = new int[]{1,2,3,4,5};
            int[] dest = new int[]{6,7,8,9,10};
            System.arraycopy( src, 0, dest, 0, 3);
            /*代码运行后:两个数组中的元素发生了变化
            src数组元素[1,2,3,4,5]
            dest数组元素[1,2,3,9,10]
            */
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    三、实例

    package com.zzm.day12.demo05;
    
    import java.util.Arrays;
    
    /**
     * 用途:
     * 时间:2021/6/28 23:26
     * 创建人:张子默
     */
    
    /*
    java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:
        public static long currentTimeMillis():返回以毫秒为单位的当前时间。
        public static void arraycopy(Object src, int srcPos, int dest, int desPos, int length):将数组中指定的数据拷贝到另一个数组中。
     */
    public class Demo01System {
    
        public static void main(String[] args) {
            demo01();
            demo02();
        }
    
        /*
        public static void arraycopy(Object src, int srcPos, int dest, int desPos, int length):将数组中指定的数据拷贝到另一个数组中。
           参数:
            src - 源数组。
            srcPos - 源数组中的起始位置。
            dest - 目标数组。
            destPos - 目标数据中的起始位置。
            length - 要复制的数组元素的数量。
        练习:将src数组中前3个元素,复制到dest数组的前3个位置上,复制元素前:
                src数组元素{1, 2, 3, 4, 5},dest数组元素{6, 7, 8, 9, 10},
            复制元素后:
                src数组元素{1, 2, 3, 4, 5},dest数组元素:{1, 2, 3, 9, 10}
         */
        private static void demo02() {
            // 定义源数组
            int[] src = {1, 2, 3, 4, 5};
            // 定义目标数组
            int[] dest = {6, 7, 8, 9, 10};
            // 使用System类中的arraycopy把源数组的前3个元素复制到目标数组的前3个位置上
            System.out.println("复制前:" + Arrays.toString(dest));
            System.arraycopy(src, 0, dest, 0, 3);
            System.out.println("复制后:" + Arrays.toString(dest));
        }
    
        /*
        public static long currentTimeMillis():返回以毫秒为单位的当前时间。
        用来检测程序的效率
        验证for循环打印数字1-9999所需使用的时间(毫秒)
         */
        private static void demo01() {
            // 程序执行前获取一次毫秒值
            long s = System.currentTimeMillis();
            // 执行for循环
            for (int i = 1; i <= 9999; i++) {
                System.out.println(i);
            }
            // 程序执行后,获取一次毫秒值
            long e = System.currentTimeMillis();
            System.out.println("程序共耗时" + (e - s) + "毫秒");
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
  • 相关阅读:
    确定性执行
    [RISC-V]verilog
    深度剖析Vue2、Vue3响应式原理 | 逐步推敲手写响应式原理全过程
    CCIE-14-MPLS_and_BGP
    Mybatis的使用(4)
    shell实现文件自动归档功能
    人工神经网络的应用价值,人工智能神经网络应用
    公纵号发送提示信息(用户微服务--消息微服务)
    Ai图像绘制模型训练以及应用
    远程Linux ssh 免密登录(本机为Windows)
  • 原文地址:https://blog.csdn.net/a1448824839/article/details/125612714