1.描述
Runtime:描述运行时状态。
在整个JVM中,Runtime类是唯一一个与JVM运行状态有关的类,且默认提供一个该类的实例化对象。
由于在每一个JVM进程中只允许提供一个Runtime类的对象,所以该类的构造方法被默认私有化,指明该类使用的是单例设计模式,且单例模式会提供一个static方法获取本类实例。
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手工调用。
该文章部分内容来源于其他资料,如有侵权或对您造成困扰,还请及时联系我删除相关内容,带来不便还请谅解。