Java对象的内存布局

对于普通对象来说,由四部分组成:markword、classpointer,instance data,padding
markword和class pointer称为对象头-----8个byte
class pointer指的是该对象属于哪个类,是object吗---4个byte
class pointer本身是8个字节,但jvm默认开启了压缩,所以变成4个字节
instance data指的是对象具体的值
padding,必须能让8整除,否则就会补齐(不知道原因)


image.png

问题:object o=new object();在内存中占几个字节?
object类没有instance data,所以只有8个byte的markword和4个byte的class pointer,以及为了让8整除的padding


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。