JAVA对象的内存

Java对象的内存基本都是占用JVM的堆内存,栈内存和方法区,栈内存可以理解为存放运行时临时数据,主要表现为本地变量,操作数,对象引用地址等等,这些数据会在方法运行结束的时候释放掉。也就是说栈内存对存储空间的占用也只是执行函数指令所必须的空间。

方法区存储的事对象所对应的类信息,静态常量,函数表,构造函数等。这些信息在类加载的时候会根据需要只存储一份。

总体来说堆内存是在java对象存储和程序运行中占作用和出问题最多的一块。

下面列出三种计算内存占用的方法。

  1. 使用java.instrument.instrumentation.getObjectSize()方法,需要创建一个agent代理在JVM中。
  2. 使用sun.misc.Unsafer类,需要通过反射来获取。
  3. 使用第三方工具,如apache的RamUsageEstimator类。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值