所在包:java.lang
System工具包经常运用于println中,离我们打印结果是最亲近的工具包了。除了提供打印输出输入流外,它还包含很多关于java虚拟机的操作方法。
常用方法及常量:
1. “标准”输入输出流
// 标准输入输出流 in out
public static final InputStream in = null;
public static final PrintStream out = null;
// 标准输出流 err 用于打印红色字体 以示警告
public static final PrintStream err = null;
// 这三者都是由java虚拟机通过set方法进行初始化
// 首先其需要检查是否允许设置IO流(有权限要求)
// 之后才设置响应的IO流
public static void setIn(InputStream in) {
checkIO();
setIn0(in);
}
public static void setOut(PrintStream out) {
checkIO();
setOut0(out);
}
public static void setErr(PrintStream err) {
checkIO();
setErr0(err);
}
2. 复制数组
// arraycopy 是复制数组用得最多的方法,比Arrays的copyOf方法方便一点
// src是原数组,srcPos是原数组开始复制的位置
// dest是新数组,destPos是新数组开始复制的位置
// length是复制元素的个数
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
3. 获取当前程序运行时间戳
// currentTimeMillis
// 返回的是当前时间与UTC时间1970年1月1日午夜之间的差值
// 单位为毫秒
public static long currentTimeMillis()
4. 终止java虚拟机的运行
// exit方法 调用的是Runtime对象中的exit方法
// status 即程序结束打印的 code
// 如:Process finished with exit code 0
// 这里的 0 就是 status
public static void exit(int status) {
Runtime.getRuntime().exit(status);
}
5. 运行垃圾收集器
// gc 即java虚拟机垃圾回收器
// 一般在方法返回return时会自动开启,尽最大努力回收无用内存并释放。
//(一般是堆区的内存)
// System调用的也是Runtime对象中的方法
public static void gc() {
Runtime.getRuntime().gc();
}
参考文献:JDK 11 API中文帮助文档