System类常用方法
System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的,因此,想要引用这些属性和方法,直接使用System类调用即可。
1)exit()
static void exit(int status)终止当前正在运行的Java【虚拟机】,参数status表示状态码,若状态码非0 ,则表示异常终止
2)gc()
static void gc()回收垃圾
例如:
class Person { // 下面定义的finalize方法会在垃圾回收前被调用public void finalize() {System.out.println("对象将被作为垃圾回收...");}
}
public class Test {public static void main(String[] args) {Student stu1 = new Student();stu1 = null; // 产生垃圾System.gc(); // 通知回收垃圾// 单纯等待for (int i = 0; i < 100000; i++) { }}
}
3)currentTimeMillis
static void currentTimeMillis()返回以毫秒为单位的当前时间
例如:
long startTime = System.currentTimeMillis();// 循环开始时的当前时间int sum = 0;
for (int i = 0; i < 1000000000; i++) {sum += i;
}long endTime = System.currentTimeMillis();// 循环结束后的当前时间System.out.println("程序运行的时间为:"+(endTime - startTime)+"毫秒");
4)arraycopy()
static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length
);
从src源数组复制到dest目标数组,复制从指定的位置开始,到目标数组的指定位置结束。src:表示源数组。srcPos:表示源数组中拷贝元素的起始位置。dest:表示目标数组。destPos:表示拷贝到目标数组的起始位置。length:表示拷贝元素的个数。
例如:
int[] fromArray = { 10, 11, 12, 13, 14, 15 }; // 源数组
int[] toArray = { 20, 21, 22, 23, 24, 25, 26 }; // 目标数组
System.arraycopy(fromArray, 2, toArray, 2, 4); // 拷贝数组元素// 打印拷贝后数组的元素
System.out.println("拷贝后的数组元素为:");
for (int i = 0; i < toArray.length; i++) {System.out.println(i + ": " + toArray[i]);
}
5)getProperties()
static Properties getProperties()获取当前java虚拟机的全部属性,返回一个Properties对象,属性以【键值对】形式存在
例如:
Properties properties = System.getProperties(); // 获得系统所有属性
Set<String> keys = properties.stringPropertyNames(); // 获得所有属性名称
for (String key : keys) {String value = properties.getProperty(key); // 通过属性名称,获取属性值System.out.println(key + ":" + value);
}
6)getProperty()
static String getProperty(String key)获取指定属性名称,获得系统属性
例如:
System.out.println(System.getProperty("user.country"));
7)getEnv()
static Map<String,String> getenv()返回当前系统环境下的所有环境变量,以Map返回;
static String getenv(String name)返回指定环境变量的值,以String返回
例如:
Map<String, String> envs = System.getenv();
envs.forEach((key, value) -> {System.out.println(key + ":" + value);
});
System.out.println(System.getenv("PATH"));