System的常用方法
exit
终止当前运行的Java虚拟机
public static void exit (int status)
说明:
方法的形参:
状态码:
0:表示当前虚拟机是正常停止
非0:表示当前虚拟机异常停止
System.exit(0);
System.out.println("我执行了语句");
以拼图小游戏为例子:
当我们需要结束程序运行的时候就可以调用这
currenTimeMillis()
时间原点:
计算机中的起始时间: 1970年1月1日 00:00:00
原因:1969年8月,贝尔实验室的程序员肯汤普逊利用妻儿离开一个月的机会,开始着手创造一个全新的革命
性的操作系统,他使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本。
随后,汤普逊和同事丹尼斯里奇改进了B语言,开发出了C语言,重写了UNIX。
所以1970年1月1日算C语言的生日。
北京时间
北京时间需要在世界标准时间上加8小时
2. 1 秒= 1000 毫秒
3. 计算机中的时间原点为: 1970年1月1日00:00:00
即中国的标准时间:
世界标准时间 + 8小时
时间换算公式
1秒 = 1000毫秒
1毫秒 = 1000微秒
1微秒 = 1000纳秒
返回当前系统的时间毫秒值(特别注意,这里返回的是毫秒值,所以要用long来接收)
public static long currenTimeMillis()
应用举例:
拿质数的判定来进行举例
public class systemTest02 {
public static void main(String[] args) {
//判断1~100000有多少个质数
long start1=System.currentTimeMillis();
for (int i = 0; i <=100000; i++) {
boolean flase=isPrime1(i);
if (flase){
System.out.println(i);
}
}
long end1=System.currentTimeMillis();
//获取程序运行的总时间
System.out.println(end1-start1);//815(运行时间,单位:毫秒)
System.out.println("--------------");
long start2=System.currentTimeMillis();
for (int i = 0; i <=100000; i++) {
boolean flase=isPrime2(i);
if (flase){
System.out.println(i);
}
}
long end2=System.currentTimeMillis();
//获取程序运行的总时间
System.out.println(end2-start2);//44(运行时间,单位:毫秒)
//原始的判断方法
public static boolean isPrime1(int number){
for (int i=2;i < number;i++){
if (number%i==0){
return false;
}
}
return true;
}
//改进后的判断方法---效率更高
public static boolean isPrime2(int number){
for (int i=2;i<=Math.sqrt(number);i++){
if (number % i==0){
return false;
}
}
return true;
}
}
注意:
程序的具体运行时间会因为个人的电脑配置不同而出现变化
arraycopy
数组的拷贝
public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数)
上述的参数说明:
参数一;数据源,要拷贝的数据从那个数组来
参数二:从数据源数组中的第几个索引开始拷贝
参数三:目的地,要把拷贝的数据放在哪儿数组中
参数四:目的地的数组索引
参数五:拷贝的个数
运用举例:
//拷贝数组
int[] arr1={1,2,3,4,5,6,7,8,9,10};
int[] arr2=new int[10];
//把arr1数组中的数据拷贝到arr2中去
//参数一;数据源,要拷贝的数据从那个数组来
//参数二:从数据源数组中的第几个索引开始拷贝
//参数三:目的地,要把拷贝的数据放在哪儿数组中
//参数四:目的地的数组索引
//参数五:拷贝的个数
System.arraycopy(arr1,0,arr2,0,5);
//检测
for (int i =0;i<arr2.length;i++){
System.out.println(arr2[i]);
}
此外,在运用数据拷贝时候需要注意的
细节:
1.如果数据源数组和目的地数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错
2.在拷贝的时候需要考虑数组的长度,如果超出范围也会报错
3.如果数据源数组与目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型
这里就不做详细的举例演示了。