java中Runtime类的简单应用

kekenai
发布于 2020-8-30 15:57
浏览
0收藏

1.简介

JVM中,Runtime类是唯一与JVM的运行状态相关的类,并且默认情况下提供此类的实例化对象。
由于每个JVM进程中只允许运行时类的一个对象,因此默认情况下该类的构造方法是私有化的,这表明该类使用单例设计模式,并且单例模式将提供一个静态方法来获取此类。 

2.获取

获取实例化对象:

public static Runtime getRuntime()  //返回与当前Java应用程序关联的运行时对象。 Runtime类的大多数方法都是实例方法,必须针对当前的运行时对象进行调用。

 

3.方法介绍

获取最大可用内存空间:public long maxMemory() ;
获取可用内存空间:public long totalMemory() ;
获取空闲内存空间:public long freeMemory() ;
手工进行GC处理:public void gc() 。
具体描述参考API文档。 

 

 4.示例-观察内存状态

 

1     Runtime runtime = Runtime.getRuntime(); //获取实例化对象
2     System.out.println(runtime.availableProcessors()); //返回可用于Java虚拟机的处理器数量  (CPU内核数)
3     System.out.println("【1】MAX_MEMORY:" + runtime.maxMemory());
4     System.out.println("【1】TOTAL_MEMORY:" + runtime.totalMemory());
5     System.out.println("【1】FREE_MEMORY:" + runtime.freeMemory());
6     runtime.gc(); // 垃圾回收
7     System.out.println("【2】MAX_MEMORY:" + runtime.maxMemory());
8     System.out.println("【2】TOTAL_MEMORY:" + runtime.totalMemory());
9     System.out.println("【2】FREE_MEMORY:" + runtime.freeMemory());


 
 通过计算获取到的 MAX_MEMORY、TOTAL_MEMORY 对应值,可分别获取本机系统内存的值;

计算方法:

  由于 Runtime 类中的 maxMemory()、totalMemory()、freeMemory()方法获取的近似结果是以 字节 为单位,所以将获取到的值分别除以 1024的3次方 得到以G为单位的数值。

 

结论:

maxMemory()  默认配置为本机系统内存的四分之一
totalMemory()  默认配置为本机系统内存的六十四分之一
 

 5.GC

GC(Garbage Collector)垃圾收集器,是可以由系统自动调用的垃圾释放功能,或者使用Runtime类中的gc手工调用。

 

该文章部分内容来源于其他资料,如有侵权或对您造成困扰,还请及时联系我删除相关内容,带来不便还请谅解。

分类
已于2020-9-1 16:31:30修改
收藏
回复
举报
回复
    相关推荐