1、Linux 上的缓存 IO 指 wirte 的时候,先把数据从应用地址空间(比如 JAVA 堆)拷贝到 kernel 缓冲区( pagecache )中,然后再刷盘; 2、JAVA 的 HeapByteBuffer 在 write 的时候,会先把数据拷贝到 Direct Memory,再 write,那么问题一:还会继续写 pagecache 吗? 3、问题二,JAVA 的 DirectByteBuffer 是把数据存在堆外内存,这个堆外内存是指 pagecache 吗?还是说先堆外,再转到 pageCache? 3、问题二,direct IO(直接 IO) 跟 directByteBuffer 有关系吗?貌似直接绕过了 pageCache