Runtime类,Process类

    科技2025-10-07  2

    文章目录

    认识Runtime类得到JVM的内存空间信息Runtime与Process

    认识Runtime类

    Runtime类表示运行时操作类, 是一个封装了JVM进程的类,每一个JVM对应着一个Runtime类的实例,此实例由JVM运行时为其实例化。 因为Runtime类本身构造方法是私有化的(单例设计),如果想取得一个Runtime实例: 这种形式

    Runtime run=Runtime.getRuntime();

    得到JVM的内存空间信息

    使用Runtime类可以取得JVM中的内存信息,最大内存空间,空闲内存空间等。

    public class RuntimeDemo1 { public static void main(String[] args) { //通过Runtime类的静态方法实例化操作 Runtime runtime=Runtime.getRuntime(); //观察最大的内存, System.out.println("JVM最大内存量:"+runtime.maxMemory()); //取得程序运行空闲内存 System.out.println("JVM空闲内存量:"+runtime.freeMemory()); String string="hello"+"world"+"!!"+"!!"; System.out.println(string); for (int i=0;i<1000;i++){ //循环修改内容,使产生多个垃圾 string+=i; } System.out.println("String操作后,JVM空闲内存量"+runtime.freeMemory()); //垃圾操作后,释放空间 runtime.gc(); System.out.println("垃圾回收之后,JVM空闲内存量"+runtime.freeMemory()); } }

    通过for循环修改了String的内容, 操作产生大量垃圾,占用系统内存区域,计算后发现JVM 的内存量减少,当执行gc()方法进行垃圾收集后,可用的空间就变大了。 输出结果:

    JVM最大内存量:1877475328 JVM空闲内存量:124193088 helloworld!!!! String操作后,JVM空闲内存量112091480 垃圾回收之后,JVM空闲内存量125499720

    Runtime与Process

    范例:让记事本进程运行5s后消失

    public class RuntimeDemo2 { public static void main(String[] args) throws Exception { //取得Runtime实例化对象 Runtime runtime=Runtime.getRuntime(); //定义进程变量 Process process=null; //调用本机程序并throws异常 process=runtime.exec("notepad.exe"); //此线程存活5s Thread.sleep(5000); //结束此进程 process.destroy(); } }

    直接控制Process()方法进行系统进程的控制。

    Processed: 0.021, SQL: 8