System類

System類


System類是一些與系統相關的屬性和方法的集合,而且在System類中所有的屬性都是靜態的,要想引用這些屬性和方法,直接使用System類調用即可。
public static void exit(int status)  系統退出 ,如果status爲0就表示退出。
public static void gc()   運行垃圾收集機制,調用的是Runtime類中的gc方法。
public static long currentTimeMillis()  返回以毫秒爲單位的當前時間。
public static void arraycopy(Object src,int srcPos, Object dest,int desPos,int length) 數組拷貝操作
public static Properties getProperties() 取得當前系統的全部屬性。
public static String  getProperty(String key) 根據鍵值取得屬性的具體內容。


System類除了可以進行內容的輸出外,還可以通過方法取得一個操作的具體時間。如下所示


public class SystemDemo01{  
    public static void main(String args[]){  
        long startTime = System.currentTimeMillis() ;   // 取得開始計算之前的時間  
        int sum = 0 ;           // 聲明變量  
        for(int i=0;i<30000000;i++){ // 執行累加操作  
            sum += i ;  
        }  
        long endTime = System.currentTimeMillis() ; // 取得計算之後的時間  
        // 結束時間減去開始時間  
        System.out.println("計算所花費的時間:" + (endTime-startTime) +"毫秒") ;  
    }  
};  


除了此功能外還可以列出本機的全部系統屬性:
public class SystemDemo02{  
    public static void main(String args[]){  
        System.getProperties().list(System.out) ;   // 列出系統的全部屬性  
    }  
};  


此處取得的是全部的屬性,如果現在只需要取幾個固定屬性的話,則就可以通過以下取得:
[java] view plain copy
public class SystemDemo03{  
    public static void main(String args[]){  
        System.out.println("系統版本:" + System.getProperty("os.name")  
            + System.getProperty("os.version")  
            + System.getProperty("os.arch")) ;  
        System.out.println("系統用戶:" + System.getProperty("user.name")) ;  
        System.out.println("當前用戶目錄:" + System.getProperty("user.home")) ;  
        System.out.println("當前用戶工作目錄:" + System.getProperty("user.dir")) ;  
    }  
};  


垃圾對象的回收


一個對象如果不使用,則肯定要等待進行垃圾收集,垃圾收集可以自動調用也可以手工調用,手工調用的時候就是調用System.gc()或者Runtime.getRuntime().gc()。但是,如果一個對象在回收之前需要做一些收尾工作,則就必須覆寫Object類中的:
protected void finalize() throws Throwable
在對象被回收之前調用,以處理對象回收前的若干操作,例如釋放資源等等。
[java] view plain copy
class Person{  
    private String name ;  
    private int age ;  
    public Person(String name,int age){  
        this.name = name ;  
        this.age = age;  
    }  
    public String toString(){   // 覆寫toString()方法  
        return "姓名:" + this.name + ",年齡:" + this.age ;  
    }  
    public void finalize() throws Throwable{    // 對象釋放空間時默認調用此方法  
        System.out.println("對象被釋放 --> " + this) ;  
    }  
};  
public class SystemDemo04{  
    public static void main(String args[]){  
        Person per = new Person("張三",30) ;  
        per = null ;    // 斷開引用  
        System.gc() ;       // 強制性釋放空間  
    }  
};  




總結:


System類本身提供的靜態屬性都是與IO操作有關的。在IO操作中還會有更多System類的使用,可以使用system類取得計算時間,以及通過gc()方法進行垃圾收集   此方法是包裝了Runtime類中的gc()方法。
版權聲明
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章