java中System类详解

   System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。

    由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员方法和成员变量都是static(静态)的,所以也可以很方便的调用他。

    system中包含了in、out和err三个成员变量,分别代表标准输入流(键盘输入)、标准输出流(显示器)和标准错误输出流(显示器)

public final static InputStream in;
//标准输入流
public final static PrintStream out;
//标准输出流
public final static PrintStream err;
//标准错误流

    由此可见,system中的out和in都不是内部类,是成员变量。out是PrintStream的final  static来修饰变量,由此可见,out是可以调用printStream中的方法的。例如,system.out.println中的println就是printStream中的一种输出方法。

System中常用的方法

1、System.arraycopy(a,b,c,d,e);

    其中,a是被复制的数组,b是复制的起始位置,c是复制到的数组,d是复制到这个数组的起始位置,e是复制到这个数组的结束位置。

2、System.currentTimeMillis();

    返回毫秒数,这个就比较简单了,和Date类中的getTime方法一样。

3、getProperty获取系统属性

常用的有:

os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录

4、gc

 java垃圾回收器,这个方法不需要我们去调用,jvm发现系统有未使用的对象,会自己进行执行。通常会有两种情况下会调用gc:a、当jvm内存不足时会调用,b、当cpu空闲的时候调用。详细请看一下jvm的具体的垃圾回收机制。

5、exit

    退出虚拟机。exit(int)方法是终止当前正在运行的java虚拟机。参数是状态码。根据惯例,非0的状态码表示异常终止,0表是终止。而且,该方法永远不会正常返回。

public static void main(String[] args) {

        try {
            System.out.println("this is try");
            System.exit(0);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            System.out.println("this is finally");
        }

    }
这是唯一一个能够退出程序并不执行finally的情况。说明:退出虚拟机会直接终止整个程序,这时的程序已经不是从代码的层面来终止程序,所以finally不会被执行。

猜你喜欢

转载自blog.csdn.net/gyp0307/article/details/79616615