理解java 运行时类以及相关操作

Runtime类:

每个JVM启动时,都对应一个Runtime实例;
此类的构造方法被私有化,只能使用内部方法访问本类的实例;
使用单例设计;
public static Runtime getRuntime(); // jingtai
用Runtime类可以直接运行本机的程序;
public Process exec(String command) throws IOException;
———-运行本地的程序:

package com.mldn;

import .io.IOException; // 非 lang包要导入!

public class RuntimeTest

{

public static void main(String[] args)

{

Runtime run = Runtime.getRuntime(); // 单例设计,获取实例

try // 该try块可以在main方法上抛出代替

{

run.exec(“gedit”); // 执行gedit程序

}

catch (IOException e)

{

e.printStackTrace();

}

}

/*

public static void main(String[] args) throws Exception

{

Runtime run = Runtime.getRuntime(); // 单例设计,获取实例

run.exec(“gedit”); // 执行gedit程序,exec的返回值是个 Process类的对象表示一个进程

}

// 下:可以用notepad代替geidt;

*/

}

————-自动关闭一个运行的进程:

public static void destroy(); // 属于Process类用于销毁一个进程对象

—-实例:

package com.mldn;

public class ProcessTest

{

public static void main(String[] args) throws Exception

{

Runtime run = Runtime.getRuntime(); // 单例设计,获取实例

Process pro = run.exec(“midori”); // 执行gedit程序 ,返回的是一个Process类 的对象,进程

Thread.sleep(2000); // 持续2秒,再关闭

pro.destroy();

}

}

———— Runtime查询系统信息:
1.maxMemory(), freeMemory(), totalMemory()查询内存;
2.gc()释放垃圾内存空间;
实例:

package com.mldn;

public class RuntimeDemo

{

public static void main(String[] args) throws Exception

{

Runtime run = Runtime.getRuntime(); // 单例设计,获取实例

System.out.println(“最大可用内存:” + run.maxMemory());

System.out.println(“执行循环前空闲内存:” + run.freeMemory());

System.out.println(“全部内存:” + run.totalMemory());

String str = ” “;

for (int i = 0; i {

str += i; // 产生大量垃圾,因为String不自动修改内容,而是开辟新空间;

}

System.out.println(“最大可用内存:” + run.maxMemory());

System.out.println(“执行循环后空闲内存:” + run.freeMemory());

System.out.println(“全部内存:” + run.totalMemory());

}

}

/*

最大可用内存:66650112

执行循环前空闲内存:4972728

全部内存:5177344

最大可用内存:66650112

执行循环后空闲内存:2663056 // 明显减少,因为运行时,并没有进行垃圾回收,

全部内存:5177344

*/

—————-gc垃圾回收:

package com.mldn;

public class RuntimeDemo

{

public static void main(String[] args) throws Exception

{

Runtime run = Runtime.getRuntime(); // 单例设计,获取实例

System.out.println(“执行循环前空闲内存:” + run.freeMemory());

String str = ” “;

for (int i = 0; i {

str += i; // 产生大量垃圾,因为String不自动修改内容,而是开辟新空间;

}

System.out.println(“执行循环后空闲内存:” + run.freeMemory());

run.gc(); // 垃圾回收

System.out.println(“垃圾回收后的空闲内存:” + run.freeMemory());

}

}

/*

administrator@xu-desktop:~$ com.mldn.RuntimeDemo

执行循环前空闲内存:4972752

执行循环后空闲内存:2663056

垃圾回收后的空闲内存:4993816

*/

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《理解java 运行时类以及相关操作
本文地址:https://www.zhiletu.com/archives-186.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微