java的System类
来源:互联网 发布:汇编语言转换成c语言 编辑:程序博客网 时间:2024/05/22 00:16
java.lang.System类包含很多有用的字段和方法,该类包含一个私有的构造器,因此不能被实例化。System类提供的基础设施包括标准输入流,标准输出流,错误输出流;访问环境变量和外部定义属性的方法;载入文件和库的手段;以及用于快速复制一个数组的方法。
输入输出及终端
System类中包含三个public静态类型的标准输入输出对象in, out, err,这三个输入输出对象通过本地方法设置成系统的标准输入输出。System类中有个console()方法用于返回和当前虚拟机相连的唯一console对象(如果存在,否则为null)。虚拟机是否存在console,这和安装平台以及启动虚拟机的方式有关;如果虚拟机通过交互式命令行启动,并且没有重定向标准输入和输出,此时该虚拟机存在一个console和它绑定在一起;如果虚拟机是自动启动的(如作为一个后台进程),那么此时虚拟机不存在console。例如:
import java.io.Console;
public class ConsoleTest {
public static void main(String[] args) {
Console console = System.console();
if(console != null){
String username = new String(console.readLine("Enter UserName: "));
String password = new String(console.readPassword("Enter PassWord: "));
System.out.println("UserName: " + username);
System.out.println("PassWord: " + password);
}
}
}
在命令行中执行的结果如下:
C:\Java>java -cp . ConsoleTest
Enter UserName: ConsoleUser
Enter PassWord:
UserName: ConsoleUser
PassWord: ConsolePass
环境变量及外部属性
System类中与外部属性有关的方法有getProperties(), setProperties(), getProperty(), setProperty();这些方法的签名如下:
public static Properties getProperties(); //获取System中java.util.Properties类型的静态变量props
public staticvoid setProperties(Propertiesprops); // 安全检查 + System.props = props
public static String getProperty(String key); // 安全检查 + props.get(key)
public static String getProperty(String key, String def);// if props.get(key) is null, then props.get(key, def)
public static String setProperty(String key, Stringvalue);// props.set(key, value)
public static String clearProperty(String key); // props.remove(key)
和环境变量有关的方法是getEnv(), getEnv(String name);其中getEnv()返回一个键值对map, 该map包含所有系统环境变量,这些系统环境变量通过父进程传递给子进程;getEnv(String name)用于获取其中的一个环境变量。
publicstatic java.util.Map<String,String> getenv();
publicstatic String getenv(String name) ;
文件、库的载入
System类中的方法load用于从当前文件系统中载入一个代码文件作为动态链接库,其参数为文件的完整路径;loadLibrary方法用于载入以libname命名的系统库,libname和系统库之间的映射由系统决定。
public staticvoid load(String filename);
public staticvoid loadLibrary(String libname);
时间获取
System类中包含两个获取时间的方法currentTimeMillis(), nanoTime(),他们的方法签名分别如下:
public static nativelong currentTimeMillis();
该函数获取标准格林威治时间的偏移量,精确到毫秒
publicstaticnativelong nanoTime();
该函数的返回值和任何系统时间无关,该函数用于衡量两个操作之间经历的时间,精确到纳秒;使用方法如下:
long startTime = System.nanoTime();
// ... the code being measured ...
long estimatedTime = System.nanoTime() - startTime;
拷贝数组
System类中包含一个arraycopy本地方法,该方法的签名如下:
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
其中为src为源数组,srcPos为源数组中拷贝开始的位置,dest为目标数组,destPos为目标数组中拷贝开始的位置,length为拷贝的长度;如果src或dest为null,则抛出NullPointerException异常,如果src中存在数据无法再dest中存储(如类型不同),则抛出ArrayStoreException;如果存储越界,则抛出IndexOutOfBoundsException。
其他
System类中还包含其他一些方法,如exit()方法停止当前运行的虚拟机;gc()用于运行一次垃圾回收
- java的System类
- java的System类
- java 的SYSTEM类
- java 的SYSTEM类【转】
- java的System类实例
- Java System类的使用
- Java IO操作——System类对IO的支持(System.out、System.err、System.in)
- Java的System类,Runtime类
- Java的System类封装工具类
- Java System 类对ID 的支持
- java的System类学习笔记
- [Java]System类的小使用
- java的System Properties
- java的System.getProperty()
- java的System.load和System.loadLibrary
- java 的 System.getenv() 和 System.getProperty()
- JAVA 中的System类
- java System类
- 日志函数
- Android NotificationManager 和Notification的使用总结
- 【shell】shell代码规范
- UVA 674 Coin Change【补充分析】
- dhtmlxGrid中link链接的使用
- java的System类
- C#中使用OracleTransaction
- 成为JAVA高手的25个目标
- 页面刷新后,自动滚动到原先位置
- uboot mmc read/write命令用法
- 单行函数和多行函数
- Android开发之PopuWindow的使用
- 特殊按键--休眠键驱动
- cmd命令---ping!