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

System 类的核心 API

1. 标准输入输出

(1) 标准输出
  • static PrintStream out:标准输出流,通常用于控制台输出。

    System.out.println("Hello, World!");
(2) 标准错误输出
  • static PrintStream err:标准错误输出流,通常用于输出错误信息。

    System.err.println("An error occurred!");
(3) 标准输入
  • static InputStream in:标准输入流,通常用于从控制台读取输入。

    Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();

2. 系统属性

(1) 获取系统属性
  • static String getProperty(String key):获取指定键的系统属性。

    String osName = System.getProperty("os.name"); // 操作系统名称
    String javaVersion = System.getProperty("java.version"); // Java 版本
  • static Properties getProperties():获取所有系统属性。

    Properties props = System.getProperties();
    props.list(System.out); // 打印所有系统属性
(2) 设置系统属性
  • static String setProperty(String key, String value):设置系统属性。

    System.setProperty("user.language", "en");
(3) 清除系统属性
  • static String clearProperty(String key):清除指定键的系统属性(Java 8 引入)。

    System.clearProperty("user.language");

3. 环境变量

  • static Map<String, String> getenv():获取所有环境变量。

    Map<String, String> env = System.getenv();
    env.forEach((key, value) -> System.out.println(key + "=" + value));
  • static String getenv(String name):获取指定名称的环境变量。

    String path = System.getenv("PATH");

4. 时间和计时

(1) 当前时间
  • static long currentTimeMillis():返回当前时间的毫秒数(从 1970 年 1 月 1 日 UTC 开始)。

    long currentTime = System.currentTimeMillis();
  • static long nanoTime():返回当前时间的纳秒数(用于高精度计时)。

    long startTime = System.nanoTime();
    // 执行一些操作
    long endTime = System.nanoTime();
    long duration = endTime - startTime; // 计算耗时
(2) 时间单位转换
  • static long toMillis(long nanos):将纳秒转换为毫秒(Java 9 引入)。

    long millis = System.toMillis(1_000_000); // 1 毫秒

5. 数组复制

  • static void 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); // 复制整个数组

6. 垃圾回收

  • static void gc():建议 JVM 执行垃圾回收。

    System.gc();
  • static void runFinalization():建议 JVM 执行对象的 finalize() 方法。

    System.runFinalization();

7. 退出程序

  • static void exit(int status):终止当前运行的 Java 虚拟机。

    System.exit(0); // 正常退出
    System.exit(1); // 异常退出

8. 安全管理

  • static SecurityManager getSecurityManager():获取系统的安全管理器。

    SecurityManager sm = System.getSecurityManager();
    if (sm != null) {
        sm.checkPermission(new RuntimePermission("exitVM"));
    }
  • static void setSecurityManager(SecurityManager sm):设置系统的安全管理器。


9. 其他方法

(1) 加载本地库
  • static void load(String filename):加载指定文件名的本地库。

    System.load("/path/to/library");
  • static void loadLibrary(String libname):加载指定名称的本地库。

    System.loadLibrary("mylib");
(2) 获取哈希码
  • static int identityHashCode(Object x):返回对象的默认哈希码(与 Object.hashCode() 相同)。

    int hashCode = System.identityHashCode(new Object());

总结

System 类的 API 提供了与系统交互的核心功能,以下是常用方法的分类:

类别方法说明
标准输入输出outerrin标准输出、错误输出、输入
系统属性getProperty()setProperty()获取或设置系统属性
环境变量getenv()获取环境变量
时间和计时currentTimeMillis()nanoTime()获取当前时间或高精度计时
数组复制arraycopy()复制数组
垃圾回收gc()runFinalization()建议垃圾回收
退出程序exit()终止 JVM
安全管理getSecurityManager()获取或设置安全管理器
其他load()identityHashCode()加载本地库、获取哈希码

相关文章:

  • Deepseek应用技巧-chatbox搭建前端问答
  • 语音识别-FunASR-docker部署-【超简洁步骤】
  • Manus:成为AI Agent领域的标杆
  • 题解:CF633D Fibonacci-ish
  • 如何安装MySQL,以及数据库表格创建并插入数据
  • 微前端如何拯救大型项目
  • Sglang部署大模型常用参数详解
  • 《 PyQt5》—— 创建 Python GUI(图形用户界面)
  • 《PyQt5》——设计Python GUI(图形用户界面)实例
  • 开关模式电源转换器 EMI/EMC 的集成仿真
  • 查看电脑信息
  • STM32的Systick定时器的作用
  • 每日一题——只出现一次的数字
  • vue3:一文理解h函数的使用
  • SpringbootActuator未授权访问漏洞
  • 优选算法系列(1. 双指针_上)
  • 转和git subtree管理方式为git submodule的管理方式
  • Fast DDS Security--两方秘钥存在的问题
  • 【Linux系统】进程状态:一个进程的轮回史
  • 技术聚焦:Debezium 如何将数据库数据精准注入 Kafka
  • 广东一驴友在英德野景点溺亡,家属被爆向21名同伴索赔86万
  • 李洋谈美国黑帮电影与黑帮文化
  • 蔡建忠已任昆山市副市长、市公安局局长
  • 视频丨歼-10CE首次实战大放异彩
  • 61岁云浮市律师协会副会长谭炳光因突发疾病逝世
  • 师爷、文士、畸人:会稽范啸风及其著述