没人看的JVM之堆和JHSDBG工具(3)

堆和JHSDBG工具和内存溢出JVM运行内存的整体流程JVM 在操作系统上启动,申请内存,先进行运行时数据区的初始化,然后把类加载到方法区,最后执行方法。方法的执行和退出过程在内存上的体现上就是虚拟机栈中栈帧的入栈和出栈。同时在方法的执行过程中创建的对象一般情况下都是放在堆中,最后堆中的对象也是需要进行垃圾回收清理的。步骤分析首先启动项目时设置jvm参数**-Xms30m -Xmx30m -Xss1m-XX:MaxMetaspaceSize=30m** 意思分别是 初始堆内存,最大堆
摘要由CSDN通过智能技术生成

堆和JHSDBG工具和内存溢出

JVM运行内存的整体流程

JVM 在操作系统上启动,申请内存,先进行运行时数据区的初始化,然后把类加载到方法区,最后执行方法。
方法的执行和退出过程在内存上的体现上就是虚拟机栈中栈帧的入栈和出栈。
同时在方法的执行过程中创建的对象一般情况下都是放在堆中,最后堆中的对象也是需要进行垃圾回收清理的。

在这里插入图片描述
步骤分析
首先启动项目时设置jvm参数**-Xms30m -Xmx30m -Xss1m
-XX:MaxMetaspaceSize=30m** 意思分别是 初始堆内存,最大堆内存,栈大小,元空间最大值。

  1. JVM 向操作系统申请内存:JVM 第一步就是通过配置参数或者默认配置参数向操作系统申请内存空间,根据内存大小找到具体的内存分配表,然后把内存段的起始地址和终止地 址分配给 JVM,接下来 JVM 就进行内部分配。
  2. 运行时数据库内存分配:JVM 获得内存空间后,会根据配置参数分配堆、栈以及方法区的内存大小。
  3. 类加载(类加载的细节后续章节会讲): 这里主要是把 class 放入方法区、还有 class 中的静态变量和常量也要放入方法区。
  4. 执行方法及创建对象: 启动 main 线程,执行 main 方法
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值