方法区和永久代的关系
在HotSpot中,设计者将方法区纳入GC分代收集,像对待堆一样来管理这部分内存,能够省去编写管理这块内存的工作,所以HotSpot虚拟机使用者更愿意将方法区称为老年代。
Java堆是否规整由所采用的垃圾收集器是否带有压缩整理功能决定。
像使用Serial、ParNew收集器自带压缩整理功能的收集器时,就会使用指针碰撞的内存分配方式;而使用CMS收集器时,由于采用的是标记-清除算法,因此采用空闲列表。
mark world被设计成非固定的数据结构,以便在在有限的内存空间中存储尽量多的信息。它会根据对象的状态,存储不同的信息,如下:
?
对象头的另外一部分是类型指针,即指向对象的类元数据的指针。