java--Runtime類

ygbada發表於2012-12-04
package edu.fjut.runtime;

/**簡介:
 *  Runtime(執行時):是一個封裝了JVM程式的類.每執行一個JAVA程式實際上
 *  都是啟動了一個JVM程式,而每一個JVM程式都是對應這一個Runtime例項,此
 *  例項是由JVM例項化的.在整個JVM中只存在一個Runtime類的物件.
 *  
 *  在Runtime類的定義中沒有構造方法,因為其構造方法被私有化了,即被設計
 *  成單例模式了,那麼在此類中必然有一個靜態方法可以返回本類的例項化物件.
 *  
 *  public static Runtime getRuntime();
 */


//每一個Runtime物件都是由JVM進行例項化的
//所以可以直接通過此類取得JVM的一些資訊
public class RuntimeDemo1 {

	public static void main(String[] args) {
		
		//通過runtime類的靜態方法進行例項化
		Runtime run=Runtime.getRuntime();
		
		//取得JVM的最大記憶體量,根據機器不同而不同
		System.out.println("JVM最大記憶體:"+run.maxMemory());
		
		//取得程式執行的空閒記憶體
		System.out.println("JVM空閒記憶體:"+run.freeMemory());
		
		//以下驗證使用String操作字串(增刪改查)容易降低效能
		String str="Hello"+"world"+"!"+"Welcome to"+"China.";
		System.out.println(str);
		for(int i=0;i<1000;i++){
			str+=i; //迴圈修改內容,會產生很多內容
		}
		
		System.out.println("操作String之後,JVM空閒記憶體:"+run.freeMemory());
		
		//進行垃圾收集,釋放空間
		run.gc();
		
		System.out.println("進行垃圾回收之後,JVM空閒記憶體:"+run.freeMemory());

	}
	
   /*結果輸出:
    *   JVM最大記憶體:66650112
	*	JVM空閒記憶體:4955768
	*	Helloworld!Welcome toChina.
	*	操作String之後,JVM空閒記憶體:4477360
	*	進行垃圾回收之後,JVM空閒記憶體:5030072
	*/

}
 
package edu.fjut.runtime;

import java.io.IOException;

//可以直接使用Runtime類執行本機的可執行程式
public class RuntimeDemo2 {

    //開啟一個記事本,五秒後自動關閉
	public static void main(String[] args) {
		
		// 取得Runtime類的例項化物件
		Runtime run=Runtime.getRuntime();
		
		Process p=null;//定義程式變數
		
		try {
			
			p=run.exec("notepad.exe");// 呼叫本機記事本程式
			
			Thread.sleep(5000);//讓此執行緒存活5秒
			
			p.destroy();//結束此程式
			
		} catch (IOException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

	}

}
 

相關文章