当前位置: 首页 > article >正文

java: system类

System 类是 Java 中的一个核心类,位于 java.lang 包中。它提供了与系统相关的功能,包括标准输入、标准输出、错误输出、环境变量、系统属性、垃圾回收等。System 类中的所有方法和属性都是静态的,因此可以直接通过类名调用,而不需要创建实例。

以下是 System 类的主要功能和方法:


1. 标准输入输出流

System 类提供了三个标准的流,用于与用户交互:

  • System.in: 标准输入流(通常是键盘输入),类型为 InputStream
  • System.out: 标准输出流(通常是控制台),类型为 PrintStream
  • System.err: 标准错误输出流(通常是控制台),类型为 PrintStream

示例:

System.out.println("This is standard output"); // 输出到控制台
System.err.println("This is an error message"); // 输出错误信息到控制台

2. 系统属性

System 类提供了访问和修改系统属性的方法。系统属性是键值对的形式,存储了与系统相关的信息(如操作系统名称、Java 版本等)。

  • System.getProperty(String key): 获取指定键的系统属性值。
  • System.setProperty(String key, String value): 设置系统属性。
  • System.getProperties(): 获取所有系统属性。

示例:

String osName = System.getProperty("os.name"); // 获取操作系统名称
String javaVersion = System.getProperty("java.version"); // 获取 Java 版本
System.out.println("OS: " + osName);
System.out.println("Java Version: " + javaVersion);

3. 环境变量

System 类可以访问操作系统的环境变量。

  • System.getenv(String name): 获取指定名称的环境变量值。
  • System.getenv(): 获取所有环境变量。

示例:

String path = System.getenv("PATH"); // 获取 PATH 环境变量
System.out.println("PATH: " + path);

4. 时间和计时

  • System.currentTimeMillis(): 返回当前时间的毫秒数(从 1970 年 1 月 1 日 UTC 开始计算)。
  • System.nanoTime(): 返回当前时间的纳秒数(用于高精度计时)。

示例:

long startTime = System.currentTimeMillis();
// 执行一些操作
long endTime = System.currentTimeMillis();
System.out.println("Time taken: " + (endTime - startTime) + " ms");

5. 垃圾回收

  • System.gc(): 建议 JVM 执行垃圾回收(注意:这只是一个建议,JVM 不一定会立即执行)。

示例:

System.gc(); // 建议进行垃圾回收

6. 退出程序

  • System.exit(int status): 终止当前运行的 Java 虚拟机。status 参数为退出状态码,通常 0 表示正常退出,非零值表示异常退出。

示例:

System.exit(0); // 正常退出程序

7. 数组复制

  • System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length): 复制数组的一部分到另一个数组。

示例:

int[] src = {1, 2, 3, 4, 5};
int[] dest = new int[5];
System.arraycopy(src, 0, dest, 0, src.length); // 复制 src 到 dest
System.out.println(Arrays.toString(dest)); // 输出: [1, 2, 3, 4, 5]

8. 安全管理器

  • System.getSecurityManager(): 获取当前的安全管理器。
  • System.setSecurityManager(SecurityManager sm): 设置安全管理器。

9. 其他方法

  • System.console(): 返回与当前 Java 虚拟机关联的 Console 对象(用于交互式输入)。
  • System.lineSeparator(): 返回系统的行分隔符(如 \n\r\n)。

示例代码

以下是一个综合示例,展示了 System 类的常用功能:

public class SystemExample {
    public static void main(String[] args) {
        // 标准输出
        System.out.println("Hello, World!");

        // 系统属性
        String osName = System.getProperty("os.name");
        System.out.println("Operating System: " + osName);

        // 环境变量
        String path = System.getenv("PATH");
        System.out.println("PATH: " + path);

        // 时间
        long startTime = System.currentTimeMillis();
        System.out.println("Current Time in ms: " + startTime);

        // 数组复制
        int[] src = {1, 2, 3, 4, 5};
        int[] dest = new int[5];
        System.arraycopy(src, 0, dest, 0, src.length);
        System.out.println("Copied Array: " + Arrays.toString(dest));

        // 退出程序
        System.exit(0);
    }
}

总结

System 类是 Java 中非常重要的工具类,提供了与系统交互的多种功能。它的方法都是静态的,使用起来非常方便。常见的用途包括:

  • 标准输入输出(System.inSystem.outSystem.err)。
  • 获取系统属性和环境变量。
  • 计时和性能测试。
  • 数组复制和程序退出等。

http://www.kler.cn/a/584444.html

相关文章:

  • 高效集成聚水潭采购退货数据到MySQL的最佳实践
  • PHP批量去除Bom头的方法
  • JVM崩溃时产生的文件 hs_err.pid.log
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.1AWS OpenSearch无服务器方案
  • 3D匹配算法简述
  • Stable Diffusion F.1模型全面解析
  • 【MyBatis Plus 逻辑删除详解】
  • YOLOv8模型改进 第三十二讲 添加Transformer Self Attention TSA 解决CNN过程中特征丢失的问题
  • 问deepseek: OpenFOAM并行分区后,是如何实现ldumatrix矩阵向量乘法计算逻辑的?
  • 基于PyTorch的深度学习4——使用numpy实现机器学习vs使用Tensor及Antograd实现机器学习
  • LuaJIT 学习(2)—— 使用 FFI 库的几个例子
  • SpringBoot3+Lombok如何配置logback输出日志到文件
  • 深入解析 React 最新特性:革新、应用与最佳实践
  • 若依框架二次开发——若依微服务打包时如何分离 JAR 包和资源文件
  • 基于传统算法的半导体晶圆缺陷检测原理及代码(二)
  • Spring中的配置文件参数化与类型转换器实现详解
  • Maven 构建 项目测试
  • Qt常用控件之垂直布局QVBoxLayout
  • Leetcode9-回文数
  • 解决:外部调用存储过程时突然变慢,但是在sql server运行很快