System
类在加载的时候会执行类中的静态块,从而调用一个本地的
registerNatives
方法。
System类是一个final类,其他类不能继承它并且System中的构造函数用private修饰的,因此不能实例化一个System对象,所以我们只能静态的调用System类中的方法和静态常量。这个类包含了三个静态常量,分别是InputStream in,PrintStream out以及PrintStream err,这三个常量在。这里需要注意的就是initializeSystemClass方法,这是System类中的私有方法,用来在类加载后初始化。
setIn , setOut , setErr 都是调用本地方法来实现 重新分配 “ 标准 ” 流 的。
Console 方法用来返回与当前虚拟机关联的 console 对象。
inheritedChannel返回从创建此 Java 虚拟机的实体中继承的信道。
setSecurityManager方法设置系统安全性。
getSecurityManager获取系统安全接口。
currentTimeMillis本地方法,用来返回以毫秒为单位的当前时间。
nanoTime本地方法,返回最准确的可用系统计时器的当前值,以毫微秒为单位。
Arraycopy本地方法从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
getProperties确定当前的系统属性。
setProperties将系统属性设置为 Properties 参数。
clearProperty移除指定键指示的系统属性。
getenv返回一个不能修改的当前系统环境的字符串映射视图。
exit(int status)方法调用Runtime.getRuntime().exit(status)方法来 终止当前正在运行的 Java 虚拟机。
gc() 方法调用了Runtime.getRuntime().gc()来运行垃圾回收器。
runFinalization方法调用了Runtime.getRuntime().runFinalization()来运行处于挂起终止状态的所有对象的终止方法。
Load方法调用了Runtime.getRuntime().load0(getCallerClass(), filename)来从作为动态库的本地文件系统中以指定的文件名加载代码文件。
loadLibrary方法加载由 libname 参数指定的系统库。
mapLibraryName是个本地方法,将一个库名称映射到特定于平台的、表示本机库的字符串中。
System类是一个final类,其他类不能继承它并且System中的构造函数用private修饰的,因此不能实例化一个System对象,所以我们只能静态的调用System类中的方法和静态常量。这个类包含了三个静态常量,分别是InputStream in,PrintStream out以及PrintStream err,这三个常量在。这里需要注意的就是initializeSystemClass方法,这是System类中的私有方法,用来在类加载后初始化。
setIn , setOut , setErr 都是调用本地方法来实现 重新分配 “ 标准 ” 流 的。
Console 方法用来返回与当前虚拟机关联的 console 对象。
inheritedChannel返回从创建此 Java 虚拟机的实体中继承的信道。
setSecurityManager方法设置系统安全性。
getSecurityManager获取系统安全接口。
currentTimeMillis本地方法,用来返回以毫秒为单位的当前时间。
nanoTime本地方法,返回最准确的可用系统计时器的当前值,以毫微秒为单位。
Arraycopy本地方法从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
getProperties确定当前的系统属性。
setProperties将系统属性设置为 Properties 参数。
clearProperty移除指定键指示的系统属性。
getenv返回一个不能修改的当前系统环境的字符串映射视图。
exit(int status)方法调用Runtime.getRuntime().exit(status)方法来 终止当前正在运行的 Java 虚拟机。
gc() 方法调用了Runtime.getRuntime().gc()来运行垃圾回收器。
runFinalization方法调用了Runtime.getRuntime().runFinalization()来运行处于挂起终止状态的所有对象的终止方法。
Load方法调用了Runtime.getRuntime().load0(getCallerClass(), filename)来从作为动态库的本地文件系统中以指定的文件名加载代码文件。
loadLibrary方法加载由 libname 参数指定的系统库。
mapLibraryName是个本地方法,将一个库名称映射到特定于平台的、表示本机库的字符串中。
getCallerClass方法调用了Reflection.getCallerClass(3)方法来实现的。