您的位置:首页 > 编程语言 > Java开发

Java学习提要——Runtime类基础

2016-09-07 18:25 597 查看
每一个JVM进程里都会存在一个Runtime类的对象,这个类的主要功能是取得一些与运行时有关的环境属性或者创建新的进程等操作

Runtime类定义的时候它的构造方法已经被私有化,这就属于单例设计模式的应用,因为要保证整个电脑里只有唯一的一个Runtime类的对象。

所以,在Runtime类里面提供有一个static型的方法,这个方法可以取得Runtime类的实例化方法

格式: public static Runtime getRuntime()

1)

Runtime类是直接与本地运行有关的所有相关属性的集合,有以下代码:

返回所有可用内存空间:public long totalMemory() ;

返回最大可用内存空间:public long maxMemory() ;

返回空余内存空间:public long freeMemory() ;

例:

public class Nice {
public static void main(String args[])  {
Runtime run = Runtime.getRuntime() ;  //取得Runtime类的实例化对象
System.out.println("1.MAX = " + run.maxMemory()) ;
System.out.println("2.TOTAL = " + run.totalMemory()) ;
System.out.println("3.FREE = " + run.freeMemory()) ;
}
}


//观察内存的变化
public class Nice {
public static void main(String args[])  {
Runtime run = Runtime.getRuntime() ;  //取得Runtime类的实例化对象
System.out.println("1.MAX = " + run.maxMemory()) ;
System.out.println("2.TOTAL = " + run.totalMemory()) ;
System.out.println("3.FREE = " + run.freeMemory()) ;
String str = " ";
for(int x=0 ; x < 10000 ; x ++) {
str += x ; //产生垃圾
}
System.out.println("\n1.MAX = " + run.maxMemory()) ;
System.out.println("2.TOTAL = " + run.totalMemory()) ;
System.out.println("3.FREE = " + run.freeMemory()) ;
}
}
//max是没有改变的,但是由于垃圾的影响,改变了可用的内存空间


2)

Runtime类,释放掉垃圾空间

格式:public void gc()

例:

public class Nice {
public static void main(String args[])  {
Runtime run = Runtime.getRuntime() ;  //取得Runtime类的实例化对象
System.out.println("1.MAX = " + run.maxMemory()) ;
System.out.println("2.TOTAL = " + run.totalMemory()) ;
System.out.println("3.FREE = " + run.freeMemory()) ;
String str = " ";
for(int x=0 ; x < 10000 ; x ++) {
str += x ; //产生垃圾
}
System.out.println("\n1.MAX = " + run.maxMemory()) ;
System.out.println("2.TOTAL = " + run.totalMemory()) ;
System.out.println("3.FREE = " + run.freeMemory()) ;
run.gc() ;  //释放垃圾空间
System.out.println("\n1.MAX = " + run.maxMemory()) ;
System.out.println("2.TOTAL = " + run.totalMemory()) ;
System.out.println("3.FREE = " + run.freeMemory()) ;
//free空闲的内存更多了
}
}


什么是GC ? 它如何处理?

1.GC(Garbage Collector)垃圾收集器,指的是释放无用的内存空间

2.GC会由系统不定期进行自动的回收,或者调用Runtime类中的gc()方法手动回收

3)

run命令可以执行windows下的程序

实际中不会用到,不过这里还是举个例子

public class Nice {
public static void main(String args[]) throws Exception {
Runtime run = Runtime.getRuntime() ;
Process pro = run.exec("notepad.exe") ;  //可调用windows下的程序
Thread.sleep(2000) ;  //休眠
pro.destroy() ; //销毁进程
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: