JavaNIO的Buffer详解

文章目录

    • 1. 简介
    • 2. 相关属性
    • 3. 相关方法
    • 4. 直接内存深入理解
    • 5. 零拷贝
    • 6. Java生态中的0拷贝

1. 简介

Buffer缓冲区实际上就是一个数组,把数组的内容和信息包装成一个Buffer对象,它提供了一组访问这些信息的方法。

在这里插入图片描述

2. 相关属性

  • Capacity

作为一个内存块,Buffer 有一个固定的大小值,也叫“capacity”。你只能往里写 capacity 个 byte、long,char 等类型。一旦 Buffer 满了,需要将其清空(通过读数据或者清除数据) 才能继续写数据往里写数据。

  • Position

当你写数据到 Buffer 中时,position 表示当前能写的位置。初始的 position 值为 0。当一 个 byte、long 等数据写到 Buffer 后, position 会向前移动到下一个可插入数据的 Buffer 单元。position 最大可为 capacity – 1。当读取数据时,也是从某个特定位置读。当将 Buffer 从写模式切换到读模式,position 会被重置为0.。当从Buffer的position处读取数据时,position向前移动到下一个可读的位置。

  • Li

你可能感兴趣的:(面试系列,java,android,开发语言)