System
类保护几个有用的域和方法。
它不能被实例化。
System
类提供的设施有标准输入流、标准输出流和错误输出流;访问外部定义的“特性”; 一种加载文件和库的途径;和快速复制数组一部分的实用方法。
java.lang.Object
|
+----java.lang.System
libname
参数指定的系统库。Properties
参数的系统属性。
public static final InputStream in
public static final PrintStream out
对单个的独立 Java 应用,写一行输出数据的一个典型方法是:
System.out.println(data)
参见在 PrintStream
类中的 println
方法。
public static final PrintStream err
典型情况是该流同显示输出或由主机环境或用户指定的另一个输出目标相联系。
通过约定,该输出流用来显示出错信息或其它应立即引起用户注意的信息,即使是主输出流也应该如此,变量 out
的值已被重定向到一个文件或其它典型的未连续监视的目标上。
public static void setIn(InputStream in)
public static void setOut(PrintStream out)
public static void setErr(PrintStream err)
public static void setSecurityManager(SecurityManager s)
SecurityException
。null
并且没有建立起安全管理器,则不做任何动作,只简单返回。
public static SecurityManager getSecurityManager()
null
。
public static native long currentTimeMillis()
参见类 Date
的描述,以了解关于“计算机时间”和通用协调时间 (UTC) 之间的轻微不同的讨论。
public static native void arraycopy(Object src,
int src_position,
Object dst,
int dst_position,
int length)
src
引用的源数组复制到用dst
引用的目的数组。 复制的元素数等于length
参数。 源数组中从位置srcOffset
到srcOffset+length-1
的元素将被一个一个地复制到目标数组中从 dstOffset
到dstOffset+length-1
的位置。
如果 src
和 dst
参数引用的是相同的数组对象,
则复制的执行就好象是把从位置 srcOffset
到
srcOffset+length-1
的元素先复制到一个长度为
length
的临时数组中,然后在把临时数组中的内容复制到参数数组中从 dstOffset
到 dstOffset+length-1
的位置。
如果下列情况中任何一个为 true ,将抛出
ArrayStoreException
,并且不修改目标:
src
参数所指的对象不是一个数组。dst
参数所指的对象不是一个数组。src
参数和 dst
参数所指的数组的元素类型是不同的原始类型。src
参数所指的元素类型是基本类型而参数dst
所指的是一个引用类型的数组。src
参数所指的数组元素是引用类型而参数dst
所指的是一个基本元素类型的数组。
否则,如果下列情况中任何一个为 true ,将抛出
ArrayIndexOutOfBoundsException
,并且不修改目标:
srcOffset
参数为负数。dstOffset
参数为负数。length
参数为负数。srcOffset+length
大于src.length
源数组的长度。dstOffset+length
大于dst.length
目标数组的长度。
否则,如果源数组中任何从位置 srcOffset
到
srcOffset+length-1
的元素不能转换为目标数组的元素类型,则抛出
ArrayStoreException
。 在这种情况下,使
k 成为小于
length 的最小非负整数以使 src[srcOffset+
k]
不能被转换为目标数组的元素类型;
当抛出异常时,源数组中从位置
srcOffset
到
srcOffset+
k-1
的元素已被复制到目标数组中从
dstOffset
到
dstOffset+
k-1
的位置,并且目标数组中其它位置未被改动。
src
数组中的一个元素不能存储到 dest
public static native int identityHashCode(Object x)
public static Properties getProperties()
如果有一安全管理器,则不带参数调用它的checkPropertiesAccess
方法,可能返回安全性异常。
当前系统属性的集合象一个
Properties
对象一样被返回。 如果没有当前系统属性的集合,
将生成一个系统属性集合并进行初始化。
该系统属性的集合总是包含下列关键字:
Key | 相关值的描述 |
---|---|
java.version | Java 版本号 |
java.vendor | Java 指定供应商字符串 |
java.vendor.url | Java 供应商 URL |
java.home | Java 安装目录 |
java.class.version | Java 类格式版本号码 |
java.class.path | Java 类路径 |
os.name | 操作系统名 |
os.arch | 操作系统结构 |
os.version | 操作系统版本 |
file.separator | 文件分隔符 (UNIX 上为“/” ) |
path.separator | 路径分隔符 (UNIX 上为“:” ) |
line.separator | 换行符(UNIX 上为“\n”) |
user.name | 用户帐户名 |
user.home | 用户主目录 |
user.dir | 用户当前工作目录 |
public static void setProperties(Properties props)
Properties
参数指示的系统属性。
首先,如果有一安全管理器,则不带参数调用它的checkPropertiesAccess
方法,可能返回一个安全性异常。
参数成为被
getProperty
方法使用的当前系统属性。 如果参数为 null
,
则忽略当前系统属性。
public static String getProperty(String key)
首先,如果有一安全管理器,则用 key 做参数调用它的checkPropertyAccess
方法,可能返回一个系统异常。
如果没有当前系统属性集合,
将生成一个系统属性集合并如同
getProperties
方法那样初始化它。
null
。
public static String getProperty(String key,
String def)
首先,如果没有一个安全管理器,则用
key
作为参数调用它的 checkPropertyAccess
方法,
如果没有系统属性的当前集合,
将生成一个系统属性集合并用和getProperties
方法相同的方式进行初始化。
public static String getenv(String name)
public static void exit(int status)
该方法调用类 Runtime
中的 exit
方法。
该方法从不正常返回。
public static void gc()
调用 gc
方法表明 Java
虚拟机为了使未使用对象占用的内存能够尽快重用而尝试了回收未使用对象所占内存。当控制从方法调用中返回时, Java 虚拟机已做了最大努力去回收所有未使用对象的空间。
public static void runFinalization()
调用该方法表明 Java 虚拟机已经做了努力去运行已被认为是删除的但其finalize
方法还未运行的对象的
finalize
方法。
当控制从方法调用中返回时,Java 虚拟机已做了最大努力去完成所有未执行的终止操作。
public static void runFinalizersOnExit(boolean value)
public static void load(String filename)
该方法调用类 Runtime
中的 load
方法。
public static void loadLibrary(String libname)
libname
参数指定的系统库。 库名到实际系统库的映射方式是依赖于系统的。