在JVM中,内存分配方式分为俩种:

  1. 指针碰撞
  2. 空闲列表

1、指针碰撞

如果内存是完整的,空闲的内存存放在一边,用过的内存放在另外一边,中间有个指针作为分界点的指示器。需要分配新内存的时候,指针往空闲内存那边挪动一段与新指针大一小相等的距离。这种分配方式就叫指针碰撞。

2、空闲列表

如果java堆中的空闲内存是碎片化不完整的,已使用内存与空闲指针存在交叉。虚拟机中有一利列表记录内存的使用情况,分配内存的时候从列表中寻找一块空间足够大小的内存区块。这种方式就叫做空闲列表。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐