全国咨询/投诉热线:400-618-9090

首页新闻动态正文

Java System类方法详细介绍[java培训]

创建时间:2020-01-09 16:25:56.0 来源:黑马程序员

1577349771854_学IT就到黑马程序员.gif

System类对大家来说并不陌生,因为之前在打印结果时,使用的都是“System.out.println()”语句,这句代码中就使用了System类。System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的,因此,想要引用这些属性和方法,直接使用System类调用即可。下面我们列举了System类的常用方法。



方法声明功能描述
static void exit(int status)该方法用于终止当前正在运行的Java虚拟机,其中参加数
status表示状态码,如果状态码不是0,则表示异常终止
static long gc()运行垃圾回收器,并对垃圾进行回收
static long currentTimeMillis()返回以毫秒为单位的当前时间
static void arraycopy(Object src,
int srcPos,Object dest,int destPos,int length)
从src应用的指定源数组复制到dest引用的数组,复制从指定
的位置开始,到目标的指定位置结束
static Properties getProperties()取得当前的系统属性
static String getProperty(String key)获取指定键描述的系统属性

上面列出了System类的常用方法,接下来通过一些案例对表中的方法进行讲解。

 

1、getProperties()方法

Syste类的getProperties()方法用于获取当前系统的全部属性,该方法会返回一个Properties对象,其中封装了系统的所有属性,这些属性是以键值对的形式存在,接下来过一个案例来显示系统所有的属性。


import java.util.*;

public class system01 {

    public static void main(String[] args) {

        //获得当前系统属性

        Properties properties=System.getProperties();

        //获得所有系统属性的key,返回Enumeration对象

        Enumeration propertyNames=properties.propertyNames();

        while (propertyNames.hasMoreElements()) {

            //获取当前属性对应的键key

            String key=(String) propertyNames.nextElement();

            //获得当前key对应的值value

            String value=System.getProperty(key);

            System.out.println(key+"--->"+value);

        }

    }

}

运行结果:

1578558305077_system类.jpg


上面案例实现了获取当前系统属性的功能。首先通过Syste的get Properties()方法获取封装了系统属性的Properties集合,然后对 Properties集合进行迭代,将所有系统属性的键以及对应的值打印出来。从图中可以看出,这些系统属性包括虚拟机版本号、用户国家、操作系统的架构等。


2. currentTimeMillis()

currentTimeMillis()方法返回一个1ong类型的值,该值表示当前时间与1970年1月1日0点0分0秒之间的时间差,单位是毫秒,习惯性地被称作时间戳。接下来通过个案例来计算程序在进行求和操作时所消耗的时间。

 

public class system02 {

    public static void main(String[] args){

        long startTime=System.currentTimeMillis();     //循环开始时的当前时间

        int sum=0;

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

            sum +=i;

        }

    long endTime=System.currentTimeMillis();        //循环结束后的时间

    System.out.println("程序运行的时间为:"+(endTime-startTime)+"毫秒");

    }

}

 

运行结果:

 

1578558330841_System类02.jpg


上面案例中,演示了数字的求和操作,程序在求和开始和结束时,分别调用了current TimeMillis()方法获得了两个时间戳,两个时间戳之间的差值便是求和操作耗费的时间。

 

3. arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

arraycopy()方法用于将一个数组中的元素快速拷贝到另一个数组。其中的参数具体作用如下:

src:表示源数组。

dest:表示目标数组。

srcPos:表示源数组中拷贝元素的起始位置。

desPos:表示拷贝到目标数组的起始位置。

length:表示拷贝元素的个数。

 

需要注意的是,在进行数组复制时,目标数组必须有足够的空间来存放拷贝的元素,否则会发生角标越界异常。接下来通过一个案例来演示数组元素的拷贝。

public class system03 {

    public static void main(String[] args){

        int[] fromArray={101,102,103,104,105,106};      //源数组

        int[] toArray={201,202,203,204,205,206,207};   //目标数组

        System.arraycopy(fromArray,2,toArray,3,4);      //拷贝数组元素

        //打印目标数组中的元素

        for(int i=0;i<toArray.length;i++){

            System.out.println(i+":"+toArray[i]);

        }

    }

 

}

 

运行结果如下:

 

1578558347274_System类03.jpg


上面案例中,创建了两个数组 fromArray和 toArray,分别代表源数组和目标数组,当调用 arraycopy()方法进行元素拷贝时,由于指定了从源数组中索引为2的元素开始拷贝,并且拷贝4个元素存放在目标数组中索引为3的位置,因此,在打印目标数组的元素时,程序首先打印的是数组toArray的前3个元素201、202、203,然后打印的是从fromArray中拷贝的4个元素。

 

除了以上例程涉及到的方法,System类还有两个常见的方法,分别是gc()和ext(int staus)方法。其中gc()方法用来启动Java的垃圾回收器,并且对内存中的垃圾对象进行回收。exit(int staus)方法用来终止当前正在运行的Java虚拟机,其中的参数status用于表示当前发生的异常状态,通常指定为0,表示正常退出,否则表示异常终止。

猜你喜欢:

Java String类和StringBuffer类有什么区别?

java String类的常见操作汇总

在线咨询 我要报名