System类
文章目录
- System类
- arraycopy()函数
- currentTimeMillis()函数
- getProperty()函数
- gc()函数
- exit()函数
- 测试代码
System系统类,主要用于获取系统的属性数据和其他操作,构造方法是私有的。
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。
由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员方法和成员变量都是static(静态)的,所以也可以很方便的调用他。
System中包含三个成员变量,分别代表标准输入流(键盘输入)、标准输出流(显示器)和标准错误输出流(显示器),原型如下所示。
public final static InputStream in; //标准输入流
public final static PrintStream out; //标准输出流
public final static PrintStream err; //标准错误流
arraycopy()函数
该函数的功能是复制一个数组的内容到另一个数组,该函数的原型如下所示。
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
接下来对参数列表进行分析
参数 | 含义 |
src | 被复制的数组 |
srcPos | 复制的起始位置 |
dest | 目标数组 |
destPos | 目标数组起始复制位置 |
length | 被复制的数组长度 |
currentTimeMillis()函数
该函数功能是返回以毫秒为单位的当前时间。
注意,当返回值的时间单位是毫秒时,值的粒度取决于底层操作系统,并且粒度可能更大。例如,许多操作系统以几十毫秒为单位测量时间。
函数原型如下所示
public static native long currentTimeMillis();
getProperty()函数
该函数可以获取指定键指示的系统属性,函数原型如下所示。
public static String getProperty(String key)
常用指定键如下所示
os.arch | 操作系统的架构 |
os.version | 操作系统的版本 |
file.separator | 文件分隔符(在 UNIX 系统中是“/”) |
path.separator | 路径分隔符(在 UNIX 系统中是“:”) |
line.separator | 行分隔符(在 UNIX 系统中是“/n”) |
user.name | 用户的账户名称 |
user.home | 用户的主目录 |
user.dir | 用户的当前工作目录 |
gc()函数
该函数功能是运行垃圾回收器。
调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。
调用 System.gc() 实际上等效于调用: Runtime.getRuntime().gc()
函数原型如下所示
public static void gc() {
Runtime.getRuntime().gc();
}
exit()函数
该函数功能是终止当前正在运行的 Java 虚拟机。
参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
该方法调用 Runtime 类中的 exit 方法。该方法永远不会正常返回。
调用 System.exit(n) 实际上等效于调用: Runtime.getRuntime().exit(n)
函数原型如下所示
public static void exit(int status) {
Runtime.getRuntime().exit(status);
}
测试代码
下列代码为简单使用上述函数的代码
public static void main(String[] args) {
// arraycopy: 数组的复制
// src: 源数组
// srcPos: 从哪个位置开始复制
// dest: 目标数组
// destPos: 目标数组位置
// length: 复制的长度
int[] arr = {20,18,15,8,35,26,45};
int[] dest = new int[8];
System.arraycopy(arr,0,dest,1,arr.length);
for (int i : dest) {
System.out.println(i);
}
System.gc();
System.exit(0);
System.out.println(System.currentTimeMillis());
System.out.println(System.getProperty("os.version"));
}