zoukankan      html  css  js  c++  java
  • java 获取计算机内存

    文章来源:https://www.cnblogs.com/hello-tl/p/9341900.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";
            }
        }
    }

    文章来源:https://www.cnblogs.com/hello-tl/p/9341900.html 

  • 相关阅读:
    数据库设计
    企业Logo的发展趋势
    把握面试关键点才是上策
    关注程序员健康之——保护你的腰椎
    常见病的中医药诊治胃痛,呕吐,腹痛,泄泻,分型论治
    孕妈咪 只要恭喜 不要害喜
    职业程序员培养之道
    呕吐、哕、下利病
    脾胃系病证便秘,痢疾,泄泻,腹痛,呃逆。。。。。。。。
    Oracle数据库DBA原文经典书籍
  • 原文地址:https://www.cnblogs.com/hello-tl/p/9341900.html
Copyright © 2011-2022 走看看