我以为,我了解Bytebuffer和DirectByteBuffer的不同之处,直到我读了IBM文档上的一篇文章,提及:
“直接ByteBuffer对象自动清除其本机缓冲区,但只能作为Java堆GC的一部分来清除”
https://www.ibm.com/developerworks/library/j-nativememory-linux/
现在我无法理解这一行,因为它说DirectByteBuffer确实作为Java堆GC的一部分进行了清理。
IFAIK,Java堆GC仅在Java堆(未分配DirectByteBuffer的区域)中进行清理。它(GC)不知道本机内存(分配DirectByteBuffer的位置)。
请帮助我理解这条线,或者如果我的理解存在差距