【Java常用類庫】_Runtime類

來源:互聯網
上載者:User

【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() ;    // 結束此進程    }};

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.