System Api
也是一个工具类,提供了一些与系统相关的方法。 tip: 1.时间原点:1970年1月1日 0:0:0,我国在东八区,有八小时时差
一.currentTimeMillis
1.作用
**作用:**用以返回从时间原点(东八区1970.1.1 8:00)开始到代码运行经历了多少毫秒
public static long currentTimeMillis()
返回当前系统的时间的毫米值形式
2.用途
1.判断程序运行所需的时间
在需要计算运行时间的代码两端放置start和end两个变量接收开始时的
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