【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()所创建的进程的控制方法;
浙公网安备 33010602011771号