System类详解

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退出。




©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值