System類表明系統,系統級的不少屬性和控制方法都放置在該類的內部。該類位於java.lang包。因爲該類的構造方法是private的,因此沒法建立該類的對象,也就是沒法實例化該類。其內部的成員變量和成員方法都是static的,因此也能夠很方便的進行調用。java
1、成員變量算法
System類內部包含in、out和err三個成員變量,分別表明標準輸入流(鍵盤輸入),標準輸出流(顯示器)和標準錯誤輸出流(顯示器)。編程
例如:數組
System.out.println(「Test」);性能
該行代碼的做用是將字符串」Test」輸出到系統的標準輸出設備上,也就是顯示在屏幕上。學習
後續在學習完IO相關的知識之後,可使用System類中的成員方法改變標準輸入流等對應的設備,例如能夠將標準輸出流輸出的信息輸出到文件內部,從而造成日誌文件等。測試
2、成員方法spa
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 運行時環境版本 |
|
Java 安裝目錄 |
|
操做系統的名稱 |
|
操做系統的版本 |
|
用戶的帳戶名稱 |
|
用戶的主目錄 |
|
用戶的當前工做目錄 |
例如:
String osName = System.getProperty(「os.name」);
String user = System.getProperty(「user.name」);
System.out.println(「當前操做系統是:」 + osName);
System.out.println(「當前用戶是:」 + user);
使用該方法能夠得到不少系統級的參數以及對應的值。