java获取jvm内存信息 java获取jvm运行信息 java获取jvm运行信息

java获取jvm内存信息 java获取jvm运行信息 java获取jvm运行信息

  • 1、创建需要使用的工具类
  • 2、创建一个 jvm信息对象类
  • 3、使用

1、创建需要使用的工具类

文件名 ByteConverter.java 用于将字节数值转为 MB数值


import java.math.BigDecimal;
import java.math.RoundingMode;/*** <h2>字节数值转换</h2>* <p>** </p>** @author * @since **/
public class ByteConverter {/*** 将字节数量转换为MB** @param bytes 字节数量* @return 对应的MB*/public static BigDecimal bytesToMB(double bytes) {BigDecimal bytesConver = BigDecimal.valueOf(bytes);// 字节数量转换MB = 字节数 / (1024 * 1024)BigDecimal conditions = BigDecimal.valueOf(1048576L);return bytesConver.divide(conditions, 2, RoundingMode.HALF_UP);}}

2、创建一个 jvm信息对象类

import java.math.BigDecimal;
import java.math.RoundingMode;
import cn.hutool.core.lang.Singleton;/*** <h2>JVM运行信息</h2>* <p>** </p>** @author * @since **/
public class JvmInfo {/*** 单例模式,使用 hutool工具,也可以自己实现,也可以直接不用单例模式 直接new*/private static JvmInfo info = Singleton.get(JvmInfo.class);/*** JVM已用内存*/private BigDecimal usedMemory;/*** JVM最大可用内存*/private BigDecimal maxMemory;/*** JVM剩余内存*/private BigDecimal freeMemory;/*** jdk安装路径*/private String jdkHome;/*** jdk版本*/private String jdkVersion;/*** JVM内存使用率*/private BigDecimal usage;private JvmInfo(){}public static JvmInfo getInstans() {Runtime runtime = Runtime.getRuntime();info.setUsedMemory(ByteConverter.bytesToMB(runtime.totalMemory() - runtime.freeMemory()));info.setMaxMemory(ByteConverter.bytesToMB(Runtime.getRuntime().maxMemory()));info.setFreeMemory(ByteConverter.bytesToMB(Runtime.getRuntime().freeMemory()));info.setUsage(info.getUsedMemory().divide(info.getMaxMemory(), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100")));info.setJdkVersion(System.getProperty("java.version"));info.setJdkHome(System.getProperty("java.home"));return info;}public String getJdkVersion() {return jdkVersion;}public void setJdkVersion(String jdkVersion) {this.jdkVersion = jdkVersion;}public BigDecimal getUsage() {return usage;}public void setUsage(BigDecimal usage) {this.usage = usage;}public BigDecimal getUsedMemory() {return usedMemory;}public void setUsedMemory(BigDecimal usedMemory) {this.usedMemory = usedMemory;}public BigDecimal getMaxMemory() {return maxMemory;}public void setMaxMemory(BigDecimal maxMemory) {this.maxMemory = maxMemory;}public BigDecimal getFreeMemory() {return freeMemory;}public void setFreeMemory(BigDecimal freeMemory) {this.freeMemory = freeMemory;}public String getJdkHome() {return jdkHome;}public void setJdkHome(String jdkHome) {this.jdkHome = jdkHome;}
}

3、使用

	public static void main(String[] args) {System.out.printf("JVM运行信息:%s", JvmInfo.getInstans());}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/635654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

元宇宙:智慧城市建设的未来引擎与价值之源

在21世纪的技术大潮中&#xff0c;元宇宙的出现无疑是一场革命&#xff0c;其独特的概念与价值已经引发了全球范围内的关注。 作为新兴科技的前沿&#xff0c;元宇宙为智慧城市建设带来了无限的可能性和价值&#xff0c;有望成为未来城市发展的核心动力。 元宇宙&#xff0c;这…

「HDLBits题解」Counters

本专栏的目的是分享可以通过HDLBits仿真的Verilog代码 以提供参考 各位可同时参考我的代码和官方题解代码 或许会有所收益 题目链接&#xff1a;Count15 - HDLBits module top_module (input clk,input reset, // Synchronous active-high resetoutput [3:0] q ); always…

【linux】Linux编辑器-vim

rz指令&#xff0c;sz指令 关于 rzsz 这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件. 安装完毕之后可以通过拖拽的方式将文件上传过去 1.查看软件包 通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我们需要使用 grep…

GitHub 一周热点汇总第6期(2024/01/14-01/20)

GitHub一周热点汇总第6期 (2024/01/14-01/20) &#xff0c;梳理每周热门的GitHub项目&#xff0c;这一周的热门项目中AI的比重难得的变低了&#xff0c;终于不像一个AI热门项目汇总了&#xff0c;一起来看看都有哪些项目吧。 #1Maybe 项目名称&#xff1a;Maybe - 个人理财应…

webpack.config.js配置文件报错:The ‘mode‘ option has not been set

报错 WARNING in configuration The mode option has not been set, webpack will fallback to production for this value. Set mode option to development or production to enable defaults for each environment. You can also set it to none to disable any default be…

pixel_avg2_w20_neon x264像素宽度为20的均值计算

一 C语言实现 static inline void pixel_avg2_w20_altivec(uint8_t *dst, intptr_t i_dst, uint8_t *src1, intptr_t i_src1, uint8_t *src2, int i_height) { pixel_avg2_w16_altivec(dst, idst, src1, i_src1, src2, i_height); //前面16列 pixel_avg2_w4_altivec(dst 16, i…

2种数控棋

目录 数控棋1 数控棋2 数控棋1 棋盘&#xff1a; 初始局面&#xff1a; 规则&#xff1a; 规则&#xff1a;双方轮流走棋&#xff0c;可走横格、竖格、可横竖转弯&#xff0c;不可走斜格。每一步均须按棋所在格的数字走步数&#xff0c;不可多不可少。 先无法走棋的一方为…

Java多线程并发篇----第二十五篇

系列文章目录 文章目录 系列文章目录前言一、如何在 Windows 和 Linux 上查找哪个线程使用的CPU 时间最长?二、什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic classes)?三、Java Concurrency API 中的 Lock 接口(Lockinterface)是什么?对比同步它有什么优…

【机组】算术逻辑单元带进位运算实验的解密与实战

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《机组 | 模块单元实验》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 ​ 目录 &#x1f33a;一、 实验目…

C语言第三弹---数据类型和变量

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 数据类型和变量 1、数据类型介绍1.1、整型1.2、浮点型1.3、字符型1.4、布尔类型1.5、各种数据类型的长度1.5.1、sizeof操作符1.5.2、数据类型的长度1.5.3、sizeo…

win系统环境搭建(十二)——Windows系统下使用docker安装redis

windows环境搭建专栏&#x1f517;点击跳转 win系统环境搭建&#xff08;十二&#xff09;——Windows系统下使用docker安装redis 文章目录 win系统环境搭建&#xff08;十二&#xff09;——Windows系统下使用docker安装redis1.创建文件夹2.docker-compose.yaml配置文件3.red…

vulnhub通关-1 DC-1(含靶场资源)

一、环境搭建 1.环境描述 描述 描述&#xff1a; DC-1 is a purposely built vulnerable lab for the purpose of gaining experience in the world of penetration testing. Dc-1是一个专门构建的易受攻击的实验室&#xff0c;目的是获得渗透测试领域的经验。 It was design…

读懂比特币—bitcoin代码分析(一)

最近美国 SEC 通过了比特币的 ETF申请&#xff0c;比特币究竟是个什么东西&#xff0c;从技术上来说&#xff0c;bitcoin 是一个点对点的电子现金系统&#xff0c;它可以实现分布式的记账&#xff0c;不依赖中心化的账务系统&#xff08;比如银行&#xff0c;支付宝&#xff09…

ValueError: Unable to read workbook: could not read strings from data.xlsx解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

免费的网站站群软件,批量管理不同网站程序

在网站运营的过程中&#xff0c;站群软件成为提高效率、管理多个网站的得力助手。本文将专心分享三款卓越的站群软件&#xff0c;其中特别推荐147SEO软件&#xff0c;它不仅能够批量管理网站&#xff0c;还能自动更新原创文章&#xff0c;并主动推送各大搜索引擎。不论您运营何…

音频筑基:时延、帧长选取的考量

音频筑基&#xff1a;时延、帧长选取的考量 帧长与时延的关系帧长变化的影响参考资料 音频算法中&#xff0c;时延和音频帧长的选择通常是个需要平衡的参数&#xff0c;这里分析下背后的考量因素。 帧长与时延的关系 一般来说&#xff0c;帧长是音频算法端到端时延的子集&…

Python操作Excel基础

一、使用Python对Excel读写数据 1.模块、包、库概念 Module&#xff08;模块&#xff09;&#xff1a;扩展名为.py的文件就可以称作为模块Package&#xff08;包&#xff09;&#xff1a;在模块只上的概念&#xff0c;为了方便管理.py模块文件进行打包。包目录下第一个文件必…

爬虫爬取数据遇到302,301重定向如何获取重定向后的地址(完美解决)

当用java或者python爬取目标网站的时候&#xff0c;浏览器可以正确重定向&#xff0c;而用编程爬取始终是code:200 只需要将请求头修改成如下&#xff0c;可以根据需要进行更改 Map<String, String> headers Map.of("Accept", "text/html,application/xh…

【征服Redis10】一文理解redis为什么这么快

Redis之所以一统分布式缓存的江湖&#xff0c;其中一大优势就是快&#xff0c;到底有多快呢&#xff1f;官方测试数据表明每秒可以处理13万次set或者lpush请求&#xff0c;执行lua调用可以达到12万次之多。一般来说&#xff0c;我们的Java服务&#xff0c;单台服务qps到达1000就…

ECharts实现简单饼图和柱状图

1.饼图 前端使用vue&#xff0c;后端使用SpringBoot <template><div><div class"card" style"padding: 15px">数据可视化分析&#xff1a;图书类型销量</div><div style"display: flex; margin: 10px 0"><di…