【Java常用类】1-11 System 和 Runtime 类

§1-11 SystemRuntime

1-11.1 System

System 类位于 java.lang 包下,该类不可实例化,但提供了许多实用的类字段和方法。

System 也是一个工具类,提供了一些与系统相关的方法。

System 类中的方法都为静态方法。

静态方法 描述
void gc() 运行 JVM 的垃圾回收器
void exit(int status) 终止当前运行的 JVM
long currentTimeMillis() 返回当前的时间(毫秒)
void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 拷贝数组。从指定源数组的指定位置开始,复制到目标数组的指定位置

注意

  • 实际上,gc()exit() 方法会调用 Runtime 类下的同名方法,但还是建议通过 System 类调用;
  • System 类中提供了三个静态常量,用于基本输入(InputStream in)、基本输出(PrintStream out)、错误输出流(PrintStream err);
  • 调用 arraycopy() 方法时,若源数组和目标数组都是基本数据类型,数组数据类型不一致将会抛出异常 ArrayStoreException
  • 调用 arraycopy() 方法时,若目标数组长度短于复制长度,则会抛出异常 ArrayIndexOutOfBoundsException
  • 调用 arraycopy() 方法时,若源数组和目标数组都是引用数据类型,利用多态的性质,子类类型数组可以赋值给父类类型数组;

1-11.2 Runtime

Runtime 位于 java.lang 包下,表示当前虚拟机的运行环境。

每一个 Java 程序都拥有一个 Runtime 类的实例,允许程序连接到(interface with)运行环境。

程序不能够自行创建 Runtime 类的实例,若要获取当前实例,应当使用 getRuntime() 方法。

该类中有一个静态内部类,Runtime.Version,用于表示 Java SE 平台实现的版本号,不可被继承。

静态方法

静态方法 描述
Runtime getRuntime() 返回与当前 Java 程序相关联的 Runtime 实例
Runtime.Version version() Runtime.Version 对象,返回 JRE 版本

常用方法

方法 描述
void exit(int status) 启动停机序列,终止当前正在运行的 JVM
int availableProcessors() 返回 JVM 可用的 CPU 数量(线程数)
void gc() 运行 JVM 中的垃圾回收器
long totalMemory() 返回 JVM 已获取的内存总大小
long freeMemory() 返回 JVM 空闲内存大小
long maxMemory() 返回 JVM 能使用的最大内存大小
Process exec(String command) 在另外一个进程中执行指定的命令(控制台)

注意

  • 传统而言,非零状态码表示非正常终止;
  • 获取内存大小的单位为字节(byte);
  • 调用 exec() 方法时注意,并非所有的控制台命令都可用,且调用该方法可能会抛出异常 IOException,应当处理此异常;
  • exec() 方法会创建一个新的子进程,并返回一个 Process 对象;
  • Process 类是一个抽象类,提供对 ProcessBuilder.start()Runtime.exec() 所创建的进程的控制方法;
posted @ 2023-07-24 22:54  Zebt  阅读(77)  评论(0)    收藏  举报