- Java 中,直接缓冲区与非直接缓冲器有什么区别
物理磁盘->内核地址空间->用户地址空间->应用程序
OS -> JVM
直接缓冲区:内核地址空间和用户地址空间之间形成了一个物理内存映射文件,减少了之间的copy过程。
存在风险:用户不易控制、GC
非直接缓冲区:通过allocate()分配缓冲区,将缓冲区建立在JVM的内存中
直接缓冲区:通过allocateDirect()分配直接缓冲区,将缓冲区建立在物理内存中,可以提高效率。
- Java 中的内存映射缓存区是什么?
- Java 中,ByteBuffer 与 StringBuffer有什么区别