Java
- 分类
- Java JVM
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/29 01:13
答案
指针碰撞主要就是当堆内存空间完整的时候,会有一个指针指向已使用的堆空间的末尾,然后分配内存时只需要将指针向后移动足够的大小即可。适用的GC包括serial、ParNew 空闲列表就是当堆内存空间不规整的时候,虚拟机会维护一个列表,记录所有的空闲内存块和大小,分配时寻找一块足够大的内存块进行对象分配。适用的GC包括CMS 而内存是否规整又取决于GC使用的是标记-清理还是标记-压缩算法
相关题目(5)
怎么查看和分析堆内存?共源 1
Java
CPU 满了怎么排查?共源 1
并发Java
哪些情况会发生栈溢出?共源 1
Java JVM并发Java
常用的 JVM 排查工具有哪些?共源 1
Java JVM并发Java
JVM 什么时候启动?共源 1
Java JVMJava
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(JVM).md
knowledge_noteQuestion 29: 什么是指针碰撞和空闲列表?
Source answer: 指针碰撞主要就是当堆内存空间完整的时候,会有一个指针指向已使用的堆空间的末尾,然后分配内存时只需要将指针向后移动足够的大小即可。适用的GC包括serial、ParNew 空闲列表就是当堆内存空间不规整的时候,虚拟机会维护一个列表,记录所有的空闲内存块和大小,分配时寻找一块足够大的内存块进行对象分配。适用的GC包括CMS 而内存是否规整又取决于GC使用的是标记-清理还是标记-压缩算法
Reviewed answer: 指针碰撞适用于内存规整的场景,通过移动边界指针完成分配;空闲列表适用于内存不规整的场景,通过维护空闲块列表选择合适空间分配。内存是否规整与垃圾回收器所用整理算法有关。