System类的概述和方法使用
- A:System类的概述
- System 类包含一些有用的类字段和方法。它不能被实例化。
- B:成员方法
- public static void gc()
- public static void exit(int status)
- public static long currentTimeMillis()
- pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
- C:案例演示
- System类的成员方法使用
2.System类常用的方法:
(1) arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
①参数详解:
src:原数组。
srcPos:原数组中的起始位置,也就是从原数组的哪一位开始拷贝。
dest:目标数组。
destPos:目标数据中的起始位置,也就是从目标数组的哪一个位置开始存储要拷贝的元素。
length:要复制的数组元素的数量。
public class Demo1 {
public static void main(String[] args) {
int[] srcArr = {10,12,14,16,19};
//把srcArr的数组元素拷贝 到destArr数组中。
int[] destArr = new int[4];
System.arraycopy(srcArr, 2, destArr, 1, 2);
System.out.println("目标数组的元素:"+Arrays.toString(destArr));
}
}
运行结果
(2) currentTimeMillis();
①该方法用于获取当前系统时间,返回的是毫秒值。返回当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。
②实例:
public class Demo2 {
public static void main(String[] args) {
System.out.println("当前的系统时间:"+System.currentTimeMillis());
}
}
③运行结果:
(3) gc();
①该方法用来建议jvm赶快启动垃圾回收器回收垃圾。只是建议启动,但是Jvm是否启动又是另外一回事。
②实例:
class Person{
String name;
public Person(String name){
this.name = name;
}
@Override
public void finalize() throws Throwable{
super.finalize();
System.out.println(this.name+"被回收了……");
}
}
public class Demo3 {
public static void main(String[] args) {
for(int i = 0;i<4;i++){
new Person("张三"+i);
System.gc();//建议马上启动垃圾回收器
}
}
}
③运行结果:
注意:finalize():是Object类的一个方法,如果一个对象被垃圾回收 器回收的时候,会先调用对象的finalize()方法。
(4) getenv(String name);
①该方法用来根据环境变量的名字获取环境变量。
②实例:
public class Demo4 {
public static void main(String[] args) {
System.out.println("环境变量:"+System.getenv("path"));
}
}
③运行结果:
(5) exit(int status);
①该方法用于退出jvm,如果参数是0表示正常退出jvm,非0表示异常退出jvm。
②退出jvm后,后面的代码就不会执行。无论传0还是传1,Jvm都会退出。
③注意:0或者非0的数据都可以退出Jvm,对于用户而言没有任何区别,对于windows是有作用的,因为如果传非0对于windows而言是异常终止的,如果是正版的操作系统,对于异常退出的软件,需要把这些异常退出的软件信息做成报告发送给微软,微软就可以针对这些问题对系统做出一些修改。
④我们程序员的编程习惯是:如果在try块中退出Jvm,try块里面是没有异常的代码,所以try块中要传0,如果是在catch块里面退出Jvm,我们习惯于用非0退出。