【Java常用類庫】_Runtime類
本章目標:
瞭解Runtime類
使用Runtime類取得JVM的空間資訊
Runtime類與Process類
3.具體內容
3.1認識Runtime類
每一個JVM進程都是對應一個Runtime執行個體。
Runtime類的構造方法被私人化了,則在此類中肯定有一個方法可以返回本類的執行個體化對象。
public static Runtime getRuntime();
Runtime類的常用方法
No. 方法定義 類型 描述
1 public static Runtime getRuntime 普通 取得Runtime類的執行個體
2 public long freeMemory() 普通 返回Java虛擬機器中的空閑記憶體量
3 public long maxMemory() 普通 返回JVM的最大記憶體量
4 public void gc() 普通 運行記憶體回收行程,釋放空間
5 public Process exec(String command) 普通 執行本機命令
throws IOException
3.2、得到JVM資訊
public class RuntimeDemo01{ public static void main(String args[]){ Runtime run = Runtime.getRuntime(); // 通過Runtime類的靜態方法進行執行個體化操作 System.out.println("JVM最大記憶體量:" + run.maxMemory()) ; // 觀察最大的記憶體,根據機器的不同,環境也會有所不同 System.out.println("JVM空閑記憶體量:" + run.freeMemory()) ; // 取得程式啟動並執行空閑記憶體 String str = "Hello " + "World" + "!!!" +"\t" + "Welcome " + "To " + "MLDN" + "~" ; System.out.println(str) ; for(int x=0;x<1000;x++){ str += x ; // 迴圈修改內容,會產生多個垃圾 } System.out.println("操作String之後的,JVM空閑記憶體量:" + run.freeMemory()) ; run.gc() ; // 進行垃圾收集,釋放空間 System.out.println("記憶體回收之後的,JVM空閑記憶體量:" + run.freeMemory()) ; }};
3.3、Runtime與Process類
除了觀察記憶體使用量量之外,也可以直接使用Runtime運行本機程式,例如,調用記事本
public Process exec(String command) throws IOException
public class RuntimeDemo02{ public static void main(String args[]){ Runtime run = Runtime.getRuntime() ; // 取得Runtime類的執行個體化對象 try{ run.exec("notepad.exe") ; // 調用本機程式,此方法需要異常處理 }catch(Exception e){ e.printStackTrace() ; // 列印異常資訊 // System.out.println(e) ; } }};
exec()方法的傳回值是Process,表示一個進程的操作類,可以通過destroy()方法銷毀掉一個進程。
public class RuntimeDemo03{ public static void main(String args[]){ Runtime run = Runtime.getRuntime() ; // 取得Runtime類的執行個體化對象 Process p = null ; // 定義進程變數 try{ p = run.exec("notepad.exe") ; // 調用本機程式,此方法需要異常處理 }catch(Exception e){ e.printStackTrace() ; // 列印異常資訊 // System.out.println(e) ; } try{ Thread.sleep(5000) ; // 讓此線程存活5秒 }catch(Exception e){ } p.destroy() ; // 結束此進程 }};