Erlo

Runtime类的简单应用

2020-08-11 17:00:22 发布   195 浏览  
页面报错/反馈
收藏 点赞

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

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

 

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

 

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认