黑马程序员技术交流社区
标题:
package java.lang下面,System类的作用
[打印本页]
作者:
H_shaohui
时间:
2016-4-14 20:18
标题:
package java.lang下面,System类的作用
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
型值。这个值可以转换至
Date
或
Timestamp
值。
它一般还可以用来计算程序执行的时间。例:
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()
:取得当前所有的Properties, Properties将在后面的集合一节进行详细的论述。
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
的动态库。
可以用
C
写
JNI
的库,
然后在
java
中通过
native
方法来调用。
System.setSecurityManager(SecurityManager s)
System.getSecurityManager()
:
设置与取得系统的
security class
。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2