Java中System类和Runtime类常用方法和属性

Java中,System 类和 Runtime 类提供了一些关键的功能,用于与底层操作系统以及运行时环境进行交互。System类是Java标准库中的一个类,提供了对JVM的一些基本访问和控制方法。Runtime 类实例封装了运行时环境。为Java程序提供了与底层系统交互的强大工具,但也需要谨慎使用以避免潜在的问题。

参考文档:Java中System类和Runtime类常用方法和属性-CJavaPy

1、System类常用方法和属性

System 类是一个提供了一系列有用的类字段和方法的最终类(final class),主要用于提供对系统级操作和系统环境的访问。

方法/属性描述
System.err 标准错误输出流。
System.in 标准输入流。
System.out 标准输出流。
System.arraycopy() 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
System.clearProperty() 根据key移除系统属性。
System.console() 返回与当前 Java 虚拟机关联的唯一 Console 对象,没有返回null。
System.currentTimeMillis() 返回以毫秒为单位的当前时间。
System.exit() 终止当前正在运行的Java虚拟机。
System.gc() 运行垃圾回收器。
System.getenv() 返回当前系统环境变量键值映射(Map),并且是不可修改的。
System.getenv(String) 获取指定环境变量的值。
System.getProperties() 获取当前系统属性。
System.getProperty(String) 根据key获取系统属性。
System.getProperty(String, String) key - 系统属性的名称,def - 默认值。
System.getSecurityManager() 获取系统安全接口,返回值是SecurityManager对象。
System.identityHashCode() 返回给定对象的哈希码。
System.inheritedChannel() 返回从创建此Java虚拟机的实体中继承的信道。
System.load() 从本地文件系统中以指定的文件名加载代码文件。
System.loadLibrary() 加载指定库名称为libname的系统库。
System.mapLibraryName() 返回与平台相关的本地库的名字。
System.nanoTime() 返回最准确的可用系统计时器的当前值,以毫微秒为单位。
System.runFinalization() 运行处于挂起终止状态的所有对象的终止方法。
System.runFinalizersOnExit() 已过时。具有固有的不安全性。
System.setErr() 重新分配标准错误输出流。
System.setIn() 重新分配“标准”输入流。
System.setOut() 重新分配“标准”输出流。
System.setProperties() 将系统属性设置为 Properties 参数。
System.setProperty() 设置指定键指示的系统属性。
System.setSecurityManager() 设置系统安全性。

使用示例:

public class Main {
  public static void main(String[] args) {
        // 使用 System.out 打印信息
        System.out.println("Hello, World!");

        // 使用 System.err 打印错误信息
        //System.err.println("Error message!");

        // 获取系统当前时间
        long currentTime = System.currentTimeMillis();
        System.out.println("Current time in milliseconds: " + currentTime);

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

        // 获取系统属性
        String javaVersion = System.getProperty("java.version");
        System.out.println("Java Version: " + javaVersion);

        // 设置系统属性
        System.setProperty("myProperty", "myValue");
        String myProperty = System.getProperty("myProperty");
        System.out.println("Custom System Property: " + myProperty);

        // 运行垃圾回收器
        System.gc();
        System.out.println("Garbage collector invoked.");

        // 获取系统安全管理器
        SecurityManager securityManager = System.getSecurityManager();
        if (securityManager == null) {
            System.out.println("No security manager is set.");
        } else {
            System.out.println("Security manager is set.");
        }

        // 获取精确时间(纳秒)
        long nanoTime = System.nanoTime();
        System.out.println("Current time in nanoseconds: " + nanoTime);

        // System.exit() 示例(请注意,这将停止程序运行)
        // System.exit(0);
        System.exit(0); //success
  }
}

2、Runtime类常用方法和属性

Runtime 类代表了 Java 应用程序的运行时环境。每个 Java 应用程序都有一个单一的 Runtime 实例,它允许应用程序与其运行时环境进行交互。Runtime 类提供了几个重要的功能,使得 Java 程序能够执行一些与系统相关的操作。

方法描述
Runtime.getRuntime() 获取 Runtime 类实例对象。
exec(String command, String[] envp, File dir) 用指定的环境和工作目录在指定的进程中执行指定的字符串命令,
也可以说就是执行一个另外的程序。
freeMemory() 返回 Java 虚拟机中的空闲内存量,以字节为单位。
totalMemory() 返回 Java 虚拟机中的内存总量。
maxMemory() 返回 Java 虚拟机试图使用的最大内存量。
availableProcessors() 返回 Java 虚拟机可用的处理器数量。
gc() 运行垃圾回收器。建议 Java 虚拟机去回收未使用的对象,
以便快速重用其占用的内存。
addShutdownHook(Thread hook) 在 JVM 关闭时执行添加的钩子(hook),
执行完这些钩子后,JVM 才会关闭。可用于关闭时的清理操作。

使用示例:Java中System类和Runtime类常用方法和属性-CJavaPy

posted @ 2024-01-22 20:09  leviliang  阅读(43)  评论(0编辑  收藏  举报