System Api

也是一个工具类,提供了一些与系统相关的方法。
tip:
1.时间原点:1970年1月1日 0:0:0,我国在东八区,有八小时时差

一.currentTimeMillis

1.作用

作用:用以返回从时间原点(东八区1970.1.1 8:00)开始到代码运行经历了多少毫秒
public static long currentTimeMillis() 返回当前系统的时间的毫米值形式

2.用途

1.判断程序运行所需的时间

在需要计算运行时间的代码两端放置startend两个变量接收开始时的currentTimeMillis获取的值,最后二者相减就能得到程序运行所消耗的时间了。

二.exit

1.作用

用于终止当前运行的Java虚拟机
public static void exit(int status)

2.方法的形参

状态码
0: 表示虚拟机是正常停止
非0:表示当前虚拟机异常停止

3.用途

当我们需要把整个程序结束时,就可以调用这个方法

三.arraycopy

1.作用

拷贝数组
public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数)

2.方法的形参

参数一:数据源,要拷贝的数据从哪个数组而来
参数二:从数据源数组中第几个索引开始拷贝
参数三:目的地,要把数据拷贝到哪个数组中
参数四:目的地数组的索引
参数五:拷贝的个数

3.细节

  • 1.如果数据源数组和目的地数组都是引用数据类型,那么其copy过去的其实都是地址值
  • 2.如果数据源数组和目的地数组都是引用数据类型,那么子类数组可以复制给父类类型的数组,但在获取时需要强转。

    Stuent[] arr1 = {s1,s2,s3};
    Person[] arr2 = new person[3];
    //复制是成立的,此时把arr1中对象的地址值复制给arr2中
    System.arraycopy(arr1,0,arr2,0,3);
    //遍历数组arr2
    for(int i = 0;i < arr2.length;i++){
      //获取数据时需要做一个强转
      Student stu = (Student) arr2[i];
    }
  • 3.如果数据源数组和目的数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错
    例如:数据源数组是int类型,那么目的数据也必须是int类型
  • 4.在拷贝的时候需要考虑数组的长度,如果超出范围会报错

4.例子:

1.将arr1数组从0索引开始,从arr2数组的0索引开始依次复制

int[] arr1 = {1,2,3,4,5,6,7,8,9,10};
int[] arr2 = new int[10];
System.arraycopy(arr1,4,arr2,2,3);
//结果:arr2: 0 0 7 8 9 0 0 0 0 0 
最后修改:2023 年 12 月 13 日
如果觉得我的文章对你有用,请随意赞赏