1.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) getProperties();
①该方法用于获取系统的所有属性。属性分为键和值两部分,它的返回值是Properties。
②实例:
public class Demo5 {
public static void main(String[] args) {
Properties properties = System.getProperties();//获取系统的所有属性
properties.list(System.out);
}
}
③运行结果:
注意:要把系统的所有属性输出就需要用到Properties的list()方法。
(6) getProperty(key);
①该方法用于根据系统的属性名获取对应的属性值。
②实例:
public class Demo6 {
public static void main(String[] args) {
String value = System.getProperty("os.name");
System.out.println("当前系统是:"+value);
}
}
③运行结果:
(7) 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退出。