在Java中,System
类提供了一组有用的类字段和方法,它不能被实例化,因为它的所有方法都是静态的。System
类位于java.lang
包中,因此它自动被所有的Java程序导入。以下是System
类中一些最常用功能的概述:
1. 标准输入输出流
- System.out:标准输出流,通常用于显示文本数据到控制台。
- System.in:标准输入流,用于从键盘读取数据。
- System.err:标准错误流,用于输出错误文本到控制台。
示例
System.out.println("Hello, World!"); // 打印文本到控制台
int data = System.in.read(); // 从控制台读取一个字符
System.err.println("Error Message"); // 在控制台输出错误消息
2. 环境属性
- 获取环境变量:
System.getenv(String name)
方法用于获取指定环境变量的值。 - 获取系统属性:
System.getProperty(String key)
方法用于获取指定的系统属性。常见的系统属性包括os.name
(操作系统名称)、java.version
(Java运行时环境版本)等。
示例
String osName = System.getProperty("os.name");
System.out.println("Operating System: " + osName);
String javaHome = System.getenv("JAVA_HOME");
System.out.println("JAVA_HOME: " + javaHome);
3. 时间
- 当前时间:
System.currentTimeMillis()
方法返回当前时间与“Unix epoch”(1970年1月1日00:00:00 GMT)之间的毫秒差。System.nanoTime()
提供了更高精度的当前时间,主要用于测量时间间隔,而不是当前的时间戳。
示例
long startTime = System.nanoTime();
// 执行一些操作
long endTime = System.nanoTime();
System.out.println("Execution time: " + (endTime - startTime) + " nanoseconds");
4. 系统安全
- 安全管理器:
System.getSecurityManager()
方法可以获取当前的安全管理器,它定义了应用程序的安全策略,包括文件系统访问、网络访问权限等。
5. 其他有用的方法
- 数组复制:
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
方法可以高效地将数据从源数组复制到目标数组。 - 设置系统属性:
System.setProperty(String key, String value)
允许你设置或修改系统属性。 - 终止虚拟机:
System.exit(int status)
方法用于终止当前运行的Java虚拟机。status
非零表示异常终止。
示例:数组复制
int[] src = {1, 2, 3, 4, 5};
int[] dest = new int[5];
System.arraycopy(src, 0, dest, 0, 5);
System.out.println(Arrays.toString(dest)); // 打印复制后的数组