【java】为什么我使用jmap结合jhat查出来的内存使用情况低于实际?

这是我用的两条命令
jmap -dump:file=/usr/d.txt,format=b 29636
jhat -J-Xmx7000m /usr/d.txt

java程序运行的时候我用电脑观察内存总占用大概是3G左右
但是我用jmap和jhat查询过后,打开localhost:7000 页面,查看堆统计信息,
发现这里显示所有示例对象的总占用不到2G,为什么?

内存包含堆和栈两部分;
你这边jmap查看的是堆内存 还有栈内存
建议使用jdk自带图形工具jvisualvm查看