zoukankan      html  css  js  c++  java
  • Runtime类的简单应用

    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手工调用。

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

  • 相关阅读:
    [LeetCode 220.] 存在重复元素 III
    C++ 构造函数 & 析构函数
    [LeetCode 891.] 子序列宽度之和【hard】
    [LeetCode 447.] Number of Boomerangs
    HJ93 数组分组
    HJ77 火车进站
    [LeetCode 338.] 比特位计数
    线段树
    大数量问题的一般解决方法
    字典树
  • 原文地址:https://www.cnblogs.com/moreforests/p/13476468.html
Copyright © 2011-2022 走看看