Java System类核心用法详解
System类概述
Java中的System
类是java.lang
包下的一个最终类,提供与系统相关的标准输入、输出、错误流、环境变量、系统属性等访问方法。所有方法均为静态方法,无需实例化即可调用。
常用方法及示例
标准输入/输出流
System.in
、System.out
和System.err
分别对应标准输入、标准输出和标准错误流。可通过setIn()
、setOut()
、setErr()
重定向流。
// 重定向标准输出到文件
PrintStream fileOut = new PrintStream("output.txt");
System.setOut(fileOut);
System.out.println("This will be written to output.txt");
系统属性访问
System.getProperty()
获取系统属性,如操作系统、Java版本等。
String osName = System.getProperty("os.name");
String javaVersion = System.getProperty("java.version");
System.out.println("OS: " + osName + ", Java: " + javaVersion);
环境变量读取
System.getenv()
读取操作系统环境变量。
String path = System.getenv("PATH");
System.out.println("PATH: " + path);
时间相关操作
System.currentTimeMillis()
和System.nanoTime()
用于高精度时间测量。
long startTime = System.nanoTime();
// 执行代码
long duration = System.nanoTime() - startTime;
System.out.println("耗时:" + duration + "纳秒");
强制垃圾回收
System.gc()
建议JVM执行垃圾回收(不保证立即执行)。
System.gc(); // 提示JVM进行垃圾回收
注意事项
- 修改标准流(如
setOut()
)可能影响其他依赖这些流的组件。 - 系统属性和环境变量在不同操作系统上可能存在差异。
nanoTime()
适用于测量时间间隔,但不适合获取当前时间。