14.7 System类
java.lang.System 类代表系统,系统级的很多属性和控制方法都放置在该类的内部。
由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。
成员变量:
in 标准输入流(键盘输入)
Scanner input = new Scanner(System.in);//键盘输入流
out 标准输出流(显示器)
System.out.println(“Test”);//该行代码的作用是将字符串”Test”输出到系统的标准输出设备上(控制台)
err 标准错误输出流(显示器)
System.err.println(“Test”);//该行代码的作用是将字符串”Test”输出到系统的标准错误输出设备上(控制台)
成员方法:
public static voidarraycopy(Object src, int srcPos, Object dest, int destPos, int length); 该方法的作用是数组拷贝,也就是将一个数组中的内容复制到另外一个数组中的指定位置,由于该方法是native方法,所以性能上比使用循环高效。
int[] a = {1,2,3,4}; int[] b = new int[5]; System.arraycopy(a,1,b,3,2); //该代码的作用是将数组a中,从下标为1开始,复制到数组b从下标3开始的位置,总共复制2个。也就是将a[1]复制给b[3],将a[2]复制给b[4],这样经过复制以后数组a中的值不发生变化,而数组b中的值将变成{0,0,0,2,3}。
public static longcurrentTimeMillis();该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。
注:在开发中,时间的存储更多都是使用 long 长整形 毫秒数保存,需要显示的时候再转换成文本展示。
public static voidexit(int status)该方法的作用是退出程序,直接退出虚拟机。其中status的值为0代表正常退出,非零代表异常退出。
public static voidgc()该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。
public static String getProperty(String key);该方法的作用是获得系统中属性名为key的属性对应的值。
系统中常见的属性名以及属性的作用如下表所示:
| key | 说明 | | :--- | :--- | | java.version | Java运行时环境版本 | | java.home | Java安装目录 | | os.name | 操作系统的名称 | | os.version | 操作系统的版本 | | user.name | 用户的账户名称 | | user.home | 用户的主目录 | | user.dir | 用户的当前工作目录 |
代码示例:
String osVersion = System.getProperty("os.version"); String osName = System.getProperty("os.name"); String userHome = System.getProperty("user.home"); String userDir = System.getProperty("user.dir"); String userName = System.getProperty("user.name"); String javaVersion = System.getProperty("java.version"); String javaHome = System.getProperty("java.home"); System.out.println("当前操作系统版本是:" + osVersion); System.out.println("当前操作系统是:" + osName); System.out.println("当前用户主目录是:" + userHome); System.out.println("当前用户的工作目录是:" + userDir); System.out.println("当前用户明是:" + userName); System.out.println("当前Java运行时环境版本是:" + javaVersion); System.out.println("当前Java安装目录是:" + javaHome);