java 获取计算机内存

文章来源:http://www.javashuo.com/article/p-ozzruajh-ed.html html

package com.boot.demo.springbootdemo.common.util;

import com.sun.management.OperatingSystemMXBean;

import java.lang.management.ManagementFactory;

public class GetComputerConfg {

    // 计算机可用内存
    public String getSystemAvailableMemorySize(){
        OperatingSystemMXBean osmb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
        long size = osmb.getFreePhysicalMemorySize();
        //若是字节数少于1024,则直接以B为单位,不然先除于1024,后3位因太少无心义
        if (size < 1024) {
            return String.valueOf(size) + "B";
        } else {
            size = size / 1024;
        }

        //若是原字节数除于1024以后,少于1024,则能够直接以KB做为单位
        //由于尚未到达要使用另外一个单位的时候
        //接下去以此类推
        if (size < 1024) {
            return String.valueOf(size) + "KB";
        } else {
            size = size / 1024;
        }

        if (size < 1024) {
            //由于若是以MB为单位的话,要保留最后1位小数,
            //所以,把此数乘以100以后再取余
            size = size * 100;
            return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "MB";
        } else {
            //不然若是要以GB为单位的,先除于1024再做一样的处理
            size = size * 100 / 1024;
            return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "GB";
        }
    }


    // 计算机总内存
    public String getSystemMemorySize(){
        OperatingSystemMXBean osmb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
        long size = osmb.getTotalPhysicalMemorySize();
        //若是字节数少于1024,则直接以B为单位,不然先除于1024,后3位因太少无心义
        if (size < 1024) {
            return String.valueOf(size) + "B";
        } else {
            size = size / 1024;
        }

        //若是原字节数除于1024以后,少于1024,则能够直接以KB做为单位
        //由于尚未到达要使用另外一个单位的时候
        //接下去以此类推
        if (size < 1024) {
            return String.valueOf(size) + "KB";
        } else {
            size = size / 1024;
        }

        if (size < 1024) {
            //由于若是以MB为单位的话,要保留最后1位小数,
            //所以,把此数乘以100以后再取余
            size = size * 100;
            return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "MB";
        } else {
            //不然若是要以GB为单位的,先除于1024再做一样的处理
            size = size * 100 / 1024;
            return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "GB";
        }
    }
}

文章来源:http://www.javashuo.com/article/p-ozzruajh-ed.html java

相关文章
相关标签/搜索