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

相关推荐
CoderYanger9 小时前
A.每日一题:输入单词需要的最少按键次数 Ⅰ+Ⅱ
java·数据结构·算法·leetcode·面试
Cosolar9 小时前
一文弄懂 Agent Harness 与 Agent Runtime 的区别
java·后端·github
海兰9 小时前
【 Python 量化交易】第3章:金融基础概念
开发语言·python·金融
一木 之林9 小时前
三.C++ 内存管理(进阶)(二)
开发语言·arm开发·c++
吴声子夜歌9 小时前
Java——类、对象及方法(一)
java·开发语言
程序员夏洛9 小时前
Redis 的持久化机制有哪些?
java·数据库·redis
阿里嘎多学长9 小时前
2026-08-29 GitHub 热点项目精选
开发语言·程序员·github·代码托管
凯尔萨厮9 小时前
Java学习笔记十(注解)
java·笔记·学习
এ慕ོ冬℘゜10 小时前
JavaScript学习心得:从只会语法,到真正会写业务逻辑
开发语言·javascript·ecmascript
钱栈up10 小时前
VSCode 调试多模块 Maven + Spring Boot 后端:从启动失败到一次跑通
java·spring boot·maven