Java DirectByteBuffer堆外内存回收原理及方法是什么?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4700个文字,预计阅读时间需要19分钟。
目录 + PhantomReference虚引用 + DirectByteBuffer堆外内存回收 + Cleaner + reserveMemory内存清理 + PhantomReference虚引用 + 在分析堆外内存回收前,先理解下PhantomReference + PhantomReference需要与ReferenceQueue关联
目录
- PhantomReference虚引用
- DirectByteBuffer堆外内存回收
- Cleaner
- reserveMemory内存清理
PhantomReference虚引用
在分析堆外内存回收之前,先了解下PhantomReference虚引用。
PhantomReference需要与ReferenceQueue引用队列结合使用,在GC进行垃圾回收的时候,如果发现一个对象只有虚引用在引用它,则认为该对象需要被回收,会将引用该对象的虚引用加入到与其关联的ReferenceQueue队列中,开发者可以通过ReferenceQueue获取需要被回收的对象,然后做一些清理操作,从队列中获取过的元素会从队列中清除,之后GC就可以对该对象进行回收。
本文共计4700个文字,预计阅读时间需要19分钟。
目录 + PhantomReference虚引用 + DirectByteBuffer堆外内存回收 + Cleaner + reserveMemory内存清理 + PhantomReference虚引用 + 在分析堆外内存回收前,先理解下PhantomReference + PhantomReference需要与ReferenceQueue关联
目录
- PhantomReference虚引用
- DirectByteBuffer堆外内存回收
- Cleaner
- reserveMemory内存清理
PhantomReference虚引用
在分析堆外内存回收之前,先了解下PhantomReference虚引用。
PhantomReference需要与ReferenceQueue引用队列结合使用,在GC进行垃圾回收的时候,如果发现一个对象只有虚引用在引用它,则认为该对象需要被回收,会将引用该对象的虚引用加入到与其关联的ReferenceQueue队列中,开发者可以通过ReferenceQueue获取需要被回收的对象,然后做一些清理操作,从队列中获取过的元素会从队列中清除,之后GC就可以对该对象进行回收。

