Java NIO中的mmap

Java中的mmap使用:

java 复制代码
static private final int start = 0;
static private final int size = 1024;
static public void main(String args[]) throws Exception {
    RandomAccessFile raf = new RandomAccessFile("D:\\IO\\mmap-test.txt", "rw");
    FileChannel fc = raf.getChannel();
    MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_WRITE, 
    start, size);
    mbb.put(0, (byte) 97);
    mbb.put(1023, (byte) 122);
    raf.close();
}

Java中的mmap,是通过MappedByteBuffer实现,是一种DirectBuffer,也就是说是操作系统直接管理的内存

Linux mmap原理:

可以参考知乎上的这个【轻松突破文件IO瓶颈:内存映射mmap技术】:https://zhuanlan.zhihu.com/p/64016923

相关推荐
Electron-er9 分钟前
深入解析C语言memcmp函数:内存比较的利器与陷阱(附实战案例)
c语言·开发语言
m0_5312371716 分钟前
C语言-操作符
c语言·开发语言
yuezhilangniao20 分钟前
win10环境变量完全指南:Java、Maven、Android、Flutter -含我的环境备份
android·java·maven
追随者永远是胜利者26 分钟前
(LeetCode-Hot100)32. 最长有效括号
java·算法·leetcode·职场和发展·go
lifallen27 分钟前
CDQ 分治 (CDQ Divide and Conquer)
java·数据结构·算法
清水白石00828 分钟前
Python 性能分析实战指南:timeit、cProfile、line_profiler 从入门到精通
开发语言·python
笨蛋不要掉眼泪33 分钟前
OpenFeign远程调用详解:声明式实现、第三方API集成与负载均衡对比
java·运维·负载均衡
月光有害36 分钟前
深入解析批归一化 (Batch Normalization): 稳定并加速深度学习的基石
开发语言·深度学习·batch
yaoxin52112338 分钟前
326. Java Stream API - 实现自定义的 toList() 与 toSet() 收集器
java·开发语言
追随者永远是胜利者39 分钟前
(LeetCode-Hot100)31. 下一个排列
java·算法·leetcode·职场和发展·go