【Java常用類庫】_System類筆記
本章目標:
認識System類及一些常用方法
掌握垃圾對象的回收操作
瞭解對象的生命週期
3、具體內容
3.1、System類基本使用
System.out.println()本身就是一個系統提供好的類,而且out.println()方法也是經常使用到的。
System類是一些與系統相關的屬性和方法的集合在System類中所有的屬性都是靜態。
No. 方法定義 類型 描述
1 public static void exit(int status) 普通 系統退出
2 public static void gc() 普通 記憶體回收
3 public staiic long currentTimeMillis() 普通 返回以毫秒為單位的目前時間
4 public static arraycopy(Object src,int 普通 數組拷貝
srcPos,Object dest,int destPos,int length)
5 public static Properties getProperties() 普通 取得當前系統的全部屬性
6 public static String getProperty(String key) 普通 根據索引值取得屬性的具體內容
一個對象如果不使用,則肯定要等待進行垃圾收集,垃圾收集可以自動調用也可以手工調用,手工調用System.gc()或者Runtime.getRuntime().gc()。但是,如果一個對象在回收之前需要做一些收尾工作,則就必須覆寫Object類中的:
protected void finalize() throws Throwable
在對象被回收之前進行調用,以處理對象回收之前的若干操作,例如釋放資源。
執行個體一:
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) ; // 列出系統的全部屬性 }};
執行個體三:
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")) ; }};
執行個體四:
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() ; // 強制性釋放空間 }};