摘要: 在hotspot虚拟机中,对象在内存中存储的布局可以分为I3块区域:对象头、实例数据、对齐填充 1.对象头包括两部分信息,第一部分用户存储对象自身的运行时数据,如哈戏码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等, 这部分数据长度在32位和64位的虚拟机中分别为32bit和6 阅读全文
posted @ 2018-08-09 15:29 飞蜗牛 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 1.对象的创建 首先虚拟机遇到一条new指令时,将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可 阅读全文
posted @ 2018-08-09 12:19 飞蜗牛 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 1.程序计数器 Program Counter Register 是一块较小的内存空间,可看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来 选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 由于java 阅读全文
posted @ 2018-08-09 11:52 飞蜗牛 阅读(112) 评论(0) 推荐(0) 编辑