java System类

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

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

    1、成员变量

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

    例如:

    System.out.println(“Test”);

    该行代码的作用是将字符串“Test”输出到系统的标准输出设备上,也就是显示在屏幕上。

    后续在学习完IO相关的知识以后,可以使用System类中的成员方法改变标准输入流等对应的设备,例如可以将标准输出流输出的信息输出到文件内部,从而形成日志文件等。

    2、成员方法

    System类中提供了一些系统级的操作方法,这些方法实现的功能分别如下:

    a、arraycopy方法

    public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

    该方法的作用是数组拷贝,也就是将一个数组中的内容复制到另外一个数组中的指定位置,由于该方法是native方法,所以性能上比使用循环高效。

    使用示例:

    int[] a = {1,2,3,4};

    int[] b = new int[5];

    System.arraycopy(a,1,b,3,2);

    该代码的作用是将数组a中,从下标为1开始,复制到数组b从下标3开始的位置,总共复制2个。也就是将a[1]复制给b[3],将a[2]复制给b[4],这样经过复制以后数组a中的值不发生变化,而数组b中的值将变成{0,0,0,2,3}.

    b、currentTimeMillis方法

    public static long currentTimeMillis()

    该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。例如:

    long l = System. currentTimeMillis();

    则获得的将是一个长整型的数字,该数字就是以差值表达的当前时间。

    使用该方法获得的时间不够直观,但是却很方便时间的计算。例如,计算程序运行需要的时间则可以使用如下的代码:

    long start = System. currentTimeMillis();

    for(int i = 0;i < 100000000;i++){

    int a = 0;

    }

    long end = System. currentTimeMillis();

    long time = end – start;

    则这里变量time的值就代表该代码中间的for循环执行需要的毫秒数,使用这种方式可以测试不同算法的程序的执行效率高低,也可以用于后期线程控制时的精确延时实现。

    c、exit方法

    public static void exit(int status)

    该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。

    d、gc方法

    public static void gc()

    该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。

    e、getProperty方法

    public static String getProperty(String key)

    该方法的作用是获得系统中属性名为key的属性对应的值。系统中常见的属性名以及属性的作用如下表所示。

系统属性集合总是包含以下键的值:



java.versionJava 运行时环境版本
java.vendorJava 运行时环境供应商
java.vendor.urlJava 供应商的 URL
java.homeJava 安装目录
java.vm.specification.versionJava 虚拟机规范版本
java.vm.specification.vendorJava 虚拟机规范供应商
java.vm.specification.nameJava 虚拟机规范名称
java.vm.versionJava 虚拟机实现版本
java.vm.vendorJava 虚拟机实现供应商
java.vm.nameJava 虚拟机实现名称
java.specification.versionJava 运行时环境规范版本
java.specification.vendorJava 运行时环境规范供应商
java.specification.nameJava 运行时环境规范名称
java.class.versionJava 类格式版本号
java.class.pathJava 类路径
java.library.path加载库时搜索的路径列表
java.io.tmpdir默认的临时文件路径
java.compiler要使用的 JIT 编译器的名称
java.ext.dirs一个或多个扩展目录的路径
os.name操作系统的名称
os.arch操作系统的架构
os.version操作系统的版本
file.separator文件分隔符(在 UNIX 系统中是“/”)
path.separator路径分隔符(在 UNIX 系统中是“:”)
line.separator行分隔符(在 UNIX 系统中是“/n”)
user.name用户的账户名称
user.home用户的主目录
user.dir用户的当前工作目录

系统属性值中的多个路径是用平台的路径分隔符分隔的。

java.lang.Object

    |_____java.lang.System

      System 类包含一些有用的类字段和方法。它不能被实例化。

      在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。 

 

获取系统属性的方法

       static Properties getProperties() 确定当前的系统属性。 

       static String getProperty(String key)  获取指定键指示的系统属性。 

       static String getProperty(String key, String def)   获取用指定键描述的系统属性。


    例如:

    String osName = System.getProperty(“os.name”);

    String user = System.getProperty(“user.name”);

    System.out.println(“当前操作系统是:” + osName);

    System.out.println(“当前用户是:” + user);

    使用该方法可以获得很多系统级的参数以及对应的值。


更多API请参照java 2 platform SE5.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值