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

相關文章
相關標籤/搜索