java.lang.System类中提供了大量的静态方法,主要是用来获取与系统相关的信息或者是进行系统级操作。
它不能被实例化。也不能被继承
常用的api方法:
- public static long currentTimeMills():获取当前系统时间对应的毫秒值
- public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):将数组中指定的数据拷贝到另一个数组当中
- public static void exit(int status):终止当前正在执行的java虚拟机,0代表正常退出,非0异常退出
currentTimeMills()方法 - 实际上,它获取到的是距1970年1月1日 0时0分0秒到当前时间的毫秒差
arraycopy()方法
将一个数组当中的元素赋值到另一个数据当中,将数组的拷贝动作是一个系统级的操作,性能比较高。
arraycopy方法当中涉及到5个参数:
参数列表 | 参数名称 | 参数类型 | 参数含义 |
---|---|---|---|
1 | src | Object | 源数组 |
2 | srcPos | int | 源数组索引的起始位置 |
3 | dest | Object | 目标数组 |
4 | destPos | int | 目标数组索引的起始位置 |
5 | length | int | 复制元素的个数 |
例子如下
public static void demo01(){
//测试JDK8的版本循环1w次耗费的时间 打印一个循环的次数
//获取当前的时间毫秒值
long begin = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
System.out.println(i);
}
//程序执行后,再次获取当前的时间
long end = System.currentTimeMillis();
//时间差 = 结束的时间 - 开始的时间
System.out.println("循环一万次总共耗时:"+(end - begin)+"毫秒");
}
public static void demo02(){
/**
* 参数:
* src:源数组 source资源 来源
* srcPos:源数组中的起始位置 position
* dest:目标数组 destination 目的地
* destPos:目标数据中的起始位置
* length:要复制的数组元素的数量 length 长度
* 练习:将原数组arr = {1,2,3,4,5,6,7} 前三个元素复制到目标数组的前三个位置上 destArr = {6,7,8,9,10,11}
*/
int[] arr = {1,2,3,4,5,6,7};
int[] destArr = {6,7,8,9,10,11};
//复制前的目标数组的元素值为
System.out.println("复制前的目标数组的数值为:"+Arrays.toString(destArr));
//复制的元素的长度不能超过源数组和目标数组的长度
System.arraycopy(arr, 0, destArr, 0, 3);
//复制后的目标数组的元素值为
System.out.println("复制后的目标数组的数值为:"+Arrays.toString(destArr));
}
//停止正在执行的虚拟机
public static void demo03(){
//终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
//该方法调用 Runtime 类中的 exit 方法。该方法永远不会正常返回。
//public static void exit(int status)
for (int i = 1; i < 1000; i++) {
if(i % 500 == 0){
System.out.println(i);
System.exit(1);
}
}
System.out.println("程序往下执行了。。");
}