Java 常用API的运用,效率及技巧二

2System

System类位于package java.lang下面, 凡是此package下面的类我们可以直接引用无需先import进来, 因为JVM缺省就load了这下面的所有class

System包含了一些我们常用的方法与成员变量。 System不能被实例化, 所有的方法都可以直接引用。 主要作用大致有:

Ø  输入输出流:
(PrintStream) System.out
(标准终端输出流),
(PrintStream) System.err
(标准错误输出流),
(InputStream) System.in
(标准输入流)。
我们还可以重定向这些流, 比如将所有的System.out的输出全部重定向至一文件中去。
SystemsetOut(PrintStream)
标准输出重定向
System.setErr(PrintStream)
标准错误输出重定向
System.setIn(InputStream)
标准输入重定向

Ø  取当前时间:
System.
currentTimeMillis() 所取到的时间是从1970/01/01以来1/1000秒计算的long型值。这个值可以转换至DateTimestamp值。 它一般还可以用来计算程序执行的时间。例:
long beginTime = System.
currentTimeMillis();


System.out.println(“run time = ” + (System.
currentTimeMillis() – beginTime));

Ø  数组拷贝:
System.arraycopy(Object src, int src_position, Object dst, int dst_position, int length)
src
: 源数组。
src_position
: 源数组拷贝的起始位置。
dst
: 目标数组
dst_position
: 拷贝至目标数组的起始位置
length
: 拷贝元素的长度
利用System.arraycopy进行数组的拷贝效率是最高的, 一般情况下我们自己很少直接用到这个方法,但在集合类的内部中都大量使用了这个方法。
例:
int[] array1 = {1, 2, 3, 4, 5};

int[] array2 = {4, 5, 6, 7, 8};
int array3 = new int[8];
System.arraycopy(
array1, 0, array3, 0, 5);
System.arraycopy(
array2, 2, array3, 5, 3);
此时array3 = {1, 2, 3, 4, 5, 6, 7, 8}

这比用for循环来进行赋值效率要高。

Ø  存取系统的Properties
System.getProperties()
:取得当前所有的PropertiesProperties将在后面的集合一节进行详细的论述。
System.setProperties(Properties props)
:设置系统的Properties
System.getProperty(String key)
: 根据一个键值来取得一个Property
System.setProperty(String key, String value)
: 设置系统的一个Property
JVM
起动的时候将会有一些缺省的Properties值, 例如:
java.version Java
运行环境版本
java.home Java
主目录 installation directory
java.class.path Java
class path
java.ext.dirs Java
的扩展目录路径

file.separator
文件分隔符("/" on UNIX)
path.separator
路径分隔符
(":" on UNIX)
line.separator
行分隔符
("\n" on UNIX)
user.name
用户名

user.home
用户主目录

user.dir 用户当前工作目录
更详细的信息请参照Java API。 另外在起动一个java程序的时候可以通过-D来设置系统的Property, 比如 java –Dejb.file=ejb_Test PrintTest PrintTest里面就可以通过System.getProperty(ejb.file)来取得值ejb_Test

Ø  其它
System.
loadLibrary(String libname) 加载native的动态库。 可以用CJNI的库, 然后在java中通过native方法来调用。
System.setSecurityManager(SecurityManager s)
System.getSecurityManager()
设置与取得系统的security class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值