在每一个JVM进程里面都会存在有一个Runtime类的对象,这个类的主要功能是取得一些与运行时有关时环境的属性或者创建新的进程等操作。
在Runtime类定义的时候,它的构造方法已经被私有化了,属于单列设计模式的引用,保证整个进程里面只有唯一 一个Runtime的对象,所以在Runtime类里面提供有一个static型的方法,可以取得Runtime类的实例化对象。
如果一旦产生了过多的垃圾之后,那么就会改变可用的内存空间的大小
Runtime类里面的方法:
public long totalMemory()//返回所有可用内存空间,返回的字节
public long maxMemory()//返回最大可用内存空间,返回的字节
public long freeMemory()//返回空余内存空间,返回的字节
public void gc()//释放掉垃圾空间
解释什么叫做GC?如何处理?
. GC(Garbage Collector)垃圾收集器,指的是释放无用的内存空间。
. GC 会由系统不定期进行自动的回收,或者调用Runtime类中的 gc() 方法 手动回收。
实际上Runtime类还有一个更加有意思的功能,可以调用本机的可执行程序,并且创建进程。
public Process exec(String command) throws IOException//Process是一个进程类
示例:使用exec方法,调用本机的可执行程序
1 package com.imooc.demo; 2 3 import java.io.IOException; 4 5 public class RuntimeTest { 6 7 public static void main(String[] args) { 8 //取得Runtime类的单列对象 9 Runtime runtime = Runtime.getRuntime(); 10 String exeFile = "notepad.exe";//记事本 11 String ms = "mspaint.exe";//画图 12 try { 13 Process exec = runtime.exec(ms);//调用本机的可执行程序(画图),返回一个进程的对象 14 Thread.sleep(5000);//打开记事本5秒后,在关闭 15 exec.destroy();//销毁,关闭进程 16 } catch (IOException e) { 17 e.printStackTrace(); 18 } catch (InterruptedException e) { 19 e.printStackTrace(); 20 } 21 } 22 23 }