JVM(HotSpot):堆空间(Heap)以及常用相关工具介绍

devtools/2024/10/4 7:20:42/

文章目录

  • 一、内存结构图
  • 二、堆的定义
  • 三、堆内存溢出
  • 四、堆内存排查工具

一、内存结构图

在这里插入图片描述

二、堆的定义

1、通过new关键字创建的对象,都会放到堆空间中。
2、它是线程共享的,堆中的对象都要考虑线程安全问题。

那有同学肯定会问,方法内通过`new`创建的对象,它是存放在堆中吗?线程安全吗?
回答:依然存放在堆中,但是,线程安全的。因为,方法内的局部变量不涉及到多线程共享。

3、堆中的内存,依赖GC进行回收释放。

三、堆内存溢出

堆内存参数:-Xmx1m

错误信息
在这里插入图片描述
代码复现

java">import java.util.ArrayList;public class Demo03 {public static void main(String[] args) {int i = 0 ;ArrayList<String> list = new ArrayList<>();String a = "1111111";try {while (true){list.add(a);a += a;i++;}} catch (Throwable e) {e.printStackTrace();System.out.println(i);}}
}

四、堆内存排查工具

1、jps工具
查看当前服务器中有那些Java进程。

2、jmap工具
输出堆内存日志信息,查看堆内存占用情况

命令:jmap -heap pid
在这里插入图片描述在这里插入图片描述

3、jconsole工具
图形化工具,更强大,可以执行GC回收、监测死锁。
在这里插入图片描述在这里插入图片描述
4、jvisualvm工具
图形化工具,更强大,可以执行GC回收、监测死锁。还可以查看堆Dump
在这里插入图片描述
点击 堆 Dump 按钮
会生成一份dump文件,点击右侧查看按钮
这个查看功能,有点慢!!!!
在这里插入图片描述
以上工具的详细用法,自行百度。
推荐jmap。方便快捷。


http://www.ppmy.cn/devtools/120547.html

相关文章

【力扣 | SQL题 | 每日三题】力扣1148, 1327, 1211, 1174

1. 力扣1148&#xff1a;文章浏览1 1.1 题目&#xff1a; Views 表&#xff1a; ------------------------ | Column Name | Type | ------------------------ | article_id | int | | author_id | int | | viewer_id | int | | view_date …

利用 Page Visibility API 优化网页性能与用户体验

在现代 Web 开发中&#xff0c;用户可能会频繁切换标签页&#xff0c;或让网页处于后台运行。为了避免不必要的资源浪费并提升用户体验&#xff0c;合理利用 Page Visibility API 可以在页面不可见时暂停或减少资源的消耗&#xff0c;并在页面重新可见时恢复正常操作。 在这篇…

将给定的表达式树(二叉树)转换为等价的中缀表达式(通过括号反映操作符的计算次序)并输出

请设计一个算法&#xff0c;将给定的表达式树&#xff08;二叉树&#xff09;转换为等价的中缀表达式&#xff08;通过括号反映操作符的计算次序&#xff09;并输出。例如&#xff0c;当下列两棵表达式树作为算法输入时&#xff1a; 输出的中缀表达式分别为 (ab)∗(c∗(−d)) 和…

C# winform s7.net 类读取 报错:数组不是一维数组。

System.ArgumentException HResult0x80070057 Message数组不是一维数组。 Sourcemscorlib StackTrace: at System.Array.SetValue(Object value, Int32 index) at S7.Net.Types.Class.FromBytes(Object sourceClass, Byte[] bytes, Double numBytes, Boolean isI…

使用VBA快速将文本转换为Word表格

Word提供了一个强调的文本转表格的功能&#xff0c;结合VBA可以实现文本快速转换表格。 示例文档如下所示。 现在需要将上述文档内容转换为如下格式的表格&#xff0c;表格内容的起始标志为。 示例代码如下。 Sub SearchTab()Application.DefaultTableSeparator "*&quo…

介绍篇| 爬虫工具介绍

什么是网络爬虫 网络爬虫工具本质上是自动化从网站提取数据的软硬件或服务。它简化了网络爬虫,使信息收集变得更加容易。如今是数据和智能化时代, 如何快速、自动化获取数据, 成了个人或者企业进入智能化时代的第一步. 选择最佳网络爬虫工具时的关键因素 在选择最佳网络爬虫…

前端安装 lerna

当你在终端中遇到 lerna: command not found 错误时&#xff0c;意味着你的系统没有找到 lerna 命令。这通常是因为 lerna 没有被正确安装或者其可执行文件的路径没有被添加到系统的 PATH 环境变量中。以下是解决这个问题的步骤&#xff1a; 1. 确认 Lerna 是否已安装 首先&a…

VUE前后端分离毕业设计题目项目有哪些,VUE程序开发常见毕业论文设计推荐

目录 0 为什么选择Vue.js 1 Vue.js 的主要特点 2 前后端分离毕业设计项目推荐 3 后端推荐 4 总结 0 为什么选择Vue.js 使用Vue.js开发计算机毕业设计是一个很好的选择&#xff0c;因为它不仅具有现代前端框架的所有优点&#xff0c;还能让你专注于构建高性能、高可用性的W…