首頁新聞動態(tài)正文

Java System類方法詳細介紹[java培訓]

更新時間:2020-01-09 來源:黑馬程序員 瀏覽量:

1577349771854_學IT就到黑馬程序員.gif

System類對大家來說并不陌生,因為之前在打印結(jié)果時,使用的都是“System.out.println()”語句,這句代碼中就使用了System類。System類定義了一些與系統(tǒng)相關的屬性和方法,它所提供的屬性和方法都是靜態(tài)的,因此,想要引用這些屬性和方法,直接使用System類調(diào)用即可。下面我們列舉了System類的常用方法。



方法聲明功能描述
static void exit(int status)該方法用于終止當前正在運行的Java虛擬機,其中參加數(shù)
status表示狀態(tài)碼,如果狀態(tài)碼不是0,則表示異常終止
static long gc()運行垃圾回收器,并對垃圾進行回收
static long currentTimeMillis()返回以毫秒為單位的當前時間
static void arraycopy(Object src,
int srcPos,Object dest,int destPos,int length)
從src應用的指定源數(shù)組復制到dest引用的數(shù)組,復制從指定
的位置開始,到目標的指定位置結(jié)束
static Properties getProperties()取得當前的系統(tǒng)屬性
static String getProperty(String key)獲取指定鍵描述的系統(tǒng)屬性

上面列出了System類的常用方法,接下來通過一些案例對表中的方法進行講解。

 

1、getProperties()方法

Syste類的getProperties()方法用于獲取當前系統(tǒng)的全部屬性,該方法會返回一個Properties對象,其中封裝了系統(tǒng)的所有屬性,這些屬性是以鍵值對的形式存在,接下來過一個案例來顯示系統(tǒng)所有的屬性。


import java.util.*;

public class system01 {

    public static void main(String[] args) {

        //獲得當前系統(tǒng)屬性

        Properties properties=System.getProperties();

        //獲得所有系統(tǒng)屬性的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);

        }

    }

}

運行結(jié)果:

1578558305077_system類.jpg


上面案例實現(xiàn)了獲取當前系統(tǒng)屬性的功能。首先通過Syste的get Properties()方法獲取封裝了系統(tǒng)屬性的Properties集合,然后對 Properties集合進行迭代,將所有系統(tǒng)屬性的鍵以及對應的值打印出來。從圖中可以看出,這些系統(tǒng)屬性包括虛擬機版本號、用戶國家、操作系統(tǒng)的架構(gòu)等。


2. currentTimeMillis()

currentTimeMillis()方法返回一個1ong類型的值,該值表示當前時間與1970年1月1日0點0分0秒之間的時間差,單位是毫秒,習慣性地被稱作時間戳。接下來通過個案例來計算程序在進行求和操作時所消耗的時間。

 

public class system02 {

    public static void main(String[] args){

        long startTime=System.currentTimeMillis();     //循環(huán)開始時的當前時間

        int sum=0;

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

            sum +=i;

        }

    long endTime=System.currentTimeMillis();        //循環(huán)結(jié)束后的時間

    System.out.println("程序運行的時間為:"+(endTime-startTime)+"毫秒");

    }

}

 

運行結(jié)果:

 

1578558330841_System類02.jpg


上面案例中,演示了數(shù)字的求和操作,程序在求和開始和結(jié)束時,分別調(diào)用了current TimeMillis()方法獲得了兩個時間戳,兩個時間戳之間的差值便是求和操作耗費的時間。

 

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

arraycopy()方法用于將一個數(shù)組中的元素快速拷貝到另一個數(shù)組。其中的參數(shù)具體作用如下:

src:表示源數(shù)組。

dest:表示目標數(shù)組。

srcPos:表示源數(shù)組中拷貝元素的起始位置。

desPos:表示拷貝到目標數(shù)組的起始位置。

length:表示拷貝元素的個數(shù)。

 

需要注意的是,在進行數(shù)組復制時,目標數(shù)組必須有足夠的空間來存放拷貝的元素,否則會發(fā)生角標越界異常。接下來通過一個案例來演示數(shù)組元素的拷貝。

public class system03 {

    public static void main(String[] args){

        int[] fromArray={101,102,103,104,105,106};      //源數(shù)組

        int[] toArray={201,202,203,204,205,206,207};   //目標數(shù)組

        System.arraycopy(fromArray,2,toArray,3,4);      //拷貝數(shù)組元素

        //打印目標數(shù)組中的元素

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

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

        }

    }

 

}

 

運行結(jié)果如下:

 

1578558347274_System類03.jpg


上面案例中,創(chuàng)建了兩個數(shù)組 fromArray和 toArray,分別代表源數(shù)組和目標數(shù)組,當調(diào)用 arraycopy()方法進行元素拷貝時,由于指定了從源數(shù)組中索引為2的元素開始拷貝,并且拷貝4個元素存放在目標數(shù)組中索引為3的位置,因此,在打印目標數(shù)組的元素時,程序首先打印的是數(shù)組toArray的前3個元素201、202、203,然后打印的是從fromArray中拷貝的4個元素。

 

除了以上例程涉及到的方法,System類還有兩個常見的方法,分別是gc()和ext(int staus)方法。其中gc()方法用來啟動Java的垃圾回收器,并且對內(nèi)存中的垃圾對象進行回收。exit(int staus)方法用來終止當前正在運行的Java虛擬機,其中的參數(shù)status用于表示當前發(fā)生的異常狀態(tài),通常指定為0,表示正常退出,否則表示異常終止。

猜你喜歡:

Java String類和StringBuffer類有什么區(qū)別?

java String類的常見操作匯總

分享到:
在線咨詢 我要報名
和我們在線交談!