日期:2014-05-20  浏览次数:20752 次

new一个对象怎样计算它用了多少内存
新建一个对象怎样计算它用了多少内存?
  域成员的空间?静态块里的内容?构造方法里的内容?
  请指教了。。。


------解决方案--------------------
呃,楼主为什么需要知道对象的大小呢?个人觉得,我们应该做的是学习如何写优质的代码去利用好内存空间和避免内存溢出,甚至可以是GC算法的调优、虚拟机的内存分配调优等等,我觉得太底层的技术和实现不是Java的优势和重心所在。
JVM规范没有限定对象在内存中的表示形式的,堆、栈、和方法区都没有限定的实现形式,不同的JVM不同。
------解决方案--------------------
使用 Java 5 后新增的 Instrumentation
Instrumentation: querying the memory usage of a Java object