有关JVM
浅堆(Shallow Heap)和深堆(Retained Heap)是两个非常重要的概念,它们分别表示一个对象结构所占用的内存大小和一个对象被GC回收后,可以真实释放的内存大小。
浅堆(Shallow Heap)是指一个对象所消耗的内存。在32位系统中,一个对象引用会占据4个字节,一个int类型会占据4个字节,long型变量会占据8个字节,每个对象头需要占用8个字节。
根据堆快照格式不同,对象的大小可能会向8字节进行对齐。以String对象为例,如图7.13所示,显示了String对象的几个属性(JDK 1.7,与JDK 1.6有差异)。
java内存堆和栈
JVM内存中的堆和栈的区别
http://www.jianshu.com/p/26fe70b000b4
jvm 堆栈方法区数据存放和操作流程
http://chengjianxiaoxue.iteye.com/blog/2153147
Java堆栈常量池深入
http://onekeyes.iteye.com/blog/2245015
java中内存溢出(后续更新)