摘要: 对象的内存布局 在HotSpot虚拟机中,对象在堆内存中的存储布局可以划分为三个部分:对象头Header、实例数据Instance Data和对齐填充Padding 对象头 HotSpot虚拟机的对象头有两类信息: 对象自身的运行时数据 类型指针 对象自身的运行时数据: 哈希码、GC分代信息、锁状态 阅读全文
posted @ 2021-03-09 15:28 keepkeep 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 对象的创建 当虚拟机遇到一条 字节码new指令时, 检查这个指令的参数是否在常量池中定位到一个类的符号引用; 并检查这个符号引用代表的类是否已被 加载、解析、初始化过,如过没有,必须执行相应的类加载过程; 在类加载检查通过之后,虚拟机将会为新生对象分配内存 对象所需的内存在类加载后就可以完全确定; 阅读全文
posted @ 2021-03-09 15:16 keepkeep 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 运行时数据区 程序计数器 也叫PC寄存器 它是一块较小的内存空间; 当前线程执行的字节码的行号指示器,是程序控制流的指示器; 每个线程都有一个独立的程序计数器,线程间的计数器互不影响,独立存储,属于“线程私有”的内存; 如果线程正在执行的是一个java方法,那么程序计数器记录的应该是正在执行的虚拟机 阅读全文
posted @ 2021-03-09 14:26 keepkeep 阅读(47) 评论(0) 推荐(0) 编辑