【JVM笔记】堆的核心概述与堆空间大小的设置与查看

目录

堆的核心概述

内存细分

堆空间大小的设置

查看堆设置的参数 


堆的核心概述

一个 JVM 实例只存在一个堆内存,堆也是 Java 内存管理的核心区域

Java 堆区在 JVM 启动的时候即被创建,其空间大小也就确定了。是 JVM 管理的最大一块内存空间

堆内存的大小是可调节的

《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的

所有的线程共享 Java 堆,在这里还可以划分线程私有的缓冲区(Thread Local Allocation Buffer,TLAB)

几乎所有对象实例以及数组都应当运行时分配在堆上

数组和对象可能永远不会存储在栈上,因为栈帧中保存引用,这个引用指向对象或者数组在堆中的位置

在方法结束后,堆中的对象不会马上被移除,仅仅在垃圾收集的时候才会被移除

堆,是 GC(Garbage Collection,垃圾收集器)执行垃圾回收的重点区域

                     

内存细分

堆空间大小的设置

Java 堆区用于存储 Java 对象实例,那么堆的大小在 JVM 启动时就已经设定好了,大家可以通过选项 “-Xmx” 和 “-Xms” 来进行设置

“-Xmx” 用于表示堆区的最大内存,等价于 -Xx:MaxHeapSize

“-Xms” 用于表示堆区的起始内存,等价于 -Xx:InitialHeapSize

一旦堆区的内存大小超过 “-Xmx” 所指定的最大内存时,将会抛出 OutOfMemoryError 异常

通常会将 -Xms 和 -Xmx 两个参数配置相同的值,其目的是为了能够在 Java 垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小,从而提高性能

默认情况下

初始内存大小:物理电脑内存大小 / 64

最大内存大小:物理电脑内存大小 / 4

查看堆设置的参数 

方式一:cmd下,jps / jstat -gc 进程 id

方式二:-XX:+Print'GCD'e'tails

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java小白。。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值