DirectBuffer的内存由操作系统分配,回收的时候呢?

ByteBuffer writeBuffer = ByteBuffer.allocateDirect(bytes.length);
阅读 3.8k
2 个回答

DirectByteBuffer里有个cleaner,回收的时候就是调用这个cleaner的clean()方法的,gc会用这个cleaner来回收的,虽然不是回收到Java的堆里

分配和回收的实现就是调用Unsafe的allocateMemory和freeMemory,里面其实就是系统调用malloc和free

推荐问题