java.lang.System类
一,引入的包: java.io.* java.util.Properties;
java.util.PropertyPermission;
java.util.StringTokenizer;
java.security.AccessController;
java.security.PrivilegedAction;
java.security.AllPermission;
java.nio.channels.Channel;
java.nio.channels.spi.SelectorProvider;
sun.nio.ch.Interruptible;
sun.reflect.Reflection;
sun.security.util.SecurityConstants;
sun.reflect.annotation.AnnotationType;
官方API文档中对这个类的介绍是:System这个类包含了几个很有用的类属性和方法。它不能被实例化,不能被继承!这个类提供的工具中囊括了标准输入、输出流和错误输出流,访问外部定义的属性和环境变量的方法;载入文件和库的方法;复制子数组的辅助方法;
二,主要方法介绍
1,registerNatives 注册本地变量,具体实现过程不清楚
2,in,out,err 成员变量 都是标准输入输出流
3,SecurityManager 对象, 不清楚具体有什么用,根据后面的代码判断是用来检测输入输出权限的
4,几个设置前面提到的流的set方法略过,例如setErr(PrintStream err)
5,Console类方法, 返回控制台对象
6,inheritedChannel() 获取创建java虚拟机的实体类的子Channel类
7,checkIO() 检查是否有设置输入输出流的权限
8,setSecurityManager(final SecurityManager s) 设置安全管理者对象,主要控制输入输出流的权限
9,setErr0,...,setSecurityManager0, 这几个方法是作为备份的存在
10,currentTimeMillis() 获取当前时间,不过单位是微秒
11,nanoTime() 获取当前时间,单位是纳秒,这个方法重点说下,在检测程序执行时间时经常使用这个方法例如: long startTime = System.nanoTime();
// ... the code being measured ...
long estimatedTime = System.nanoTime() - startTime;
12,arraycopy(Object src, int srcPos, Object dest, int destPos,int length); 复制子数组
13,identityHashCode(Object x) 返回哈希编码,引用为null的对象返回0
14,Properties props,initProperties(Properties props), String getProperty(String key)setProperty(String key, String value), 都是与系统变量有关的操作类,用这些方法可以获取很多有用的与JRE,JVM有关的信息,比如user.dir代表用户目录,java工程下的工程路径。
java.version=Java Runtime Environment version
java.vendo = Java Runtime Environment vendor
java.vendor.url=Java vendor URL
java.home=Java installation directory
java.vm.specification.version=Java Virtual Machine specification version
java.vm.specification.vendor=Java Virtual Machine specification vendor
java.vm.specification.name=Java Virtual Machine specification name
java.vm.version=Java Virtual Machine implementation version
java.vm.vendor=Java Virtual Machine implementation vendor
java.vm.name=Java Virtual Machine implementation name
java.specification.version=Java Runtime Environment specification version
java.specification.vendor=Java Runtime Environment specification vendor
java.specification.name=Java Runtime Environment specification name
java.class.version=Java class format version number
java.class.path=Java class path
java.library.path=List of paths to search when loading libraries</td></tr>
java.io.tmpdir=Default temp file path
java.compiler=Name of JIT compiler to use
java.ext.dirs=Path of extension directory or directories
os.name=Operating system name
os.arch=Operating system architecture
os.version=Operating system version
file.separator=File separator ("/" on UNIX)
path.separator=Path separator (":" on UNIX)
line.separator=Line separator ("\n" on UNIX)
user.name=User's account name
user.home=User's home directory
user.dir=User's current working directory
15,exit(int status),gc()这两个函数太熟悉了,就不介绍了
16,load(String filename) 加载文件17,loadLibrary(String libname) 加载类库文件
三、总结
常用的方法也就这些了,希望能给路过的朋友一些帮助。