【Java常用类】1-11 System 和 Runtime 类
§1-11 System
和 Runtime
类
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()
所创建的进程的控制方法;