java--Runtime类

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();
		}

	}

}
 

你可能感兴趣的:(Runtime)