一、类的加载时机:
二、类的卸载时机:
类卸载,满足下面三个条件:
1、该类所有的实例都已经被回收,也就是java堆中不存在该类的任何实例。 2、加载该类的ClassLoader已经被回收。 3、该类对应的java.lang.Class对象没有任何地方被引用,无法在任何地方通过反射访问该类的方法。
三、一个类占用内存:
四、一个对象占用内存:
对象头(Header)对象头在32位系统上占用8bytes,64位系统上占用16bytes。
实例数据(Instance Data))
对齐填充(Padding)HotSpot的对齐方式为8字节对齐。
指针压缩 对象占用的内存大小收到VM参数UseCompressedOops的影响。
数组对象 64位机器上,数组对象的对象头占用24个字节,启用压缩之后占用16个字节
五、静态方法和实例方法站内内存分析: