1、一个Buffer对象是固定数量的数据的容器。其作用是一个存储器,或者分段运输区,在这里数据可以被存储并在之后用于检索。
概念上,缓冲区是包在一个对象内的基本数据元素数组。Buffer类比一个简单的数组的优点是它将关于数据的数据内容和信息包含在一个单一的对象中。Buffer类以及它专有的子类定义了一个用于处理数据缓冲区的API。
2、缓冲区的四大属性:
1、容量(capacity):缓冲区能容纳的数据元素的最大数量。这一容量在缓冲区创建时被设定,并且永远不能被改变。
2、上界(limit):缓冲区的第一个不能被读或写的元素。或者说,缓冲区中现存元素的计数。
3、位置(position):下一个要被读或写的元素的索引。位置会自动由相应的get()和put()函数更新。
4、标记(mark):一个备忘位置。调用mark()来设定mark=position。调用reset()设定position=mark。标记在设定前是未定义的。
这四个属性之间总是遵循以下关系:
0<=mark<=position<=limit<=capacity
新建一个buffer,如图:


- 大小: 27.5 KB
分享到:
相关推荐
2. **Buffer(缓冲区)**:Buffer用于存储和传输数据,它是NIO的核心。读取数据到Channel之前,先要将数据写入Buffer;从Channel读取数据时,也会先读取到Buffer。 3. **Selector(选择器)**:Selector允许单线程...
ByteBuffer的用法是Java NIO学习中的核心内容。 首先,我们了解下ByteBuffer的基本概念。ByteBuffer是一个字节缓冲区,可以存储字节序列。在NIO中,所有的数据读写都通过缓冲区进行,ByteBuffer与其他类型的Buffer...
### Nio学习笔记:深入理解Java的Buffer机制 在Java的NIO(Non-blocking I/O)框架中,`Buffer`类及其子类扮演着至关重要的角色。这些类提供了处理基本类型数据的能力,使得数据能够在内存和I/O设备之间高效地传输...
2. **缓冲区(Buffer)**: - 缓冲区是数据的临时存储区域,用于在通道之间传输数据。在NIO中,有多种类型的缓冲区,如ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer和LongBuffer,分别对应不同的...
《NIO学习笔记》 在Java编程领域,NIO(Non-blocking Input/Output,非阻塞I/O)是一种重要的I/O模型,与传统的BIO(Blocking I/O)相对应。NIO提供了一种新的方式来处理I/O操作,特别是在处理大量并发连接时,它的...
虚拟机学习笔记 Java 虚拟机(JVM)是 Java 语言的 runtime 环境,负责加载、验证、执行 Java 字节码。以下是 JVM 相关知识点的总结。 1. 运行时数据区域 JVM 的运行时数据区域主要包括: * 堆(Heap):...
在这个例子中,`FileInputStream`和`FileOutputStream`创建了文件的输入和输出流,`FileChannel`获取了与文件的连接,`ByteBuffer`作为数据缓冲区,通过`clear()`、`read()`、`flip()`和`write()`方法实现了文件的...
2. **缓冲区(Buffer)**:缓冲区是NIO中的核心概念,它是数据的容器。读取数据时,数据首先会被读入到缓冲区,然后再从缓冲区提取;写入数据时,先写入缓冲区,再从缓冲区写入通道。 3. **选择器(Selector)**:选择...
JavaSE 7引入了NIO(Non-blocking Input/Output)提供了一种更高效的IO处理模式,包括通道(Channels)和缓冲区(Buffers)的概念。 JavaSE还包含了大量的标准库,如JDBC(Java Database Connectivity)用于数据库...
- **NIO**:非阻塞I/O的原理,选择器、通道和缓冲区的应用。 6. **网络编程**: - **TCP/UDP**:了解两种传输协议的工作原理和区别。 - **Socket编程**:如何创建和使用Socket进行网络通信。 7. **Spring框架**...
4. NIO(New IO):介绍NIO的非阻塞特性,通道(Channel)和缓冲区(Buffer)的概念,以及选择器(Selector)的使用。 七、多线程 1. 线程的创建:通过Thread类和Runnable接口创建线程。 2. 线程同步:讲解...
【Java IO操作详解】 在Java编程中,IO(Input/Output)操作是处理数据输入与输出的核心技术。Java-IO操作共19页的笔记详细介绍了这一关键领域,旨在帮助...这19页的学习笔记将是你掌握Java IO操作的重要参考资料。
- NIO(New Input/Output)提供了更高效的数据传输方式,包括缓冲区和选择器。 6. **多线程** - 线程是程序的执行流程,Java支持多线程编程,可以使用Thread类或实现Runnable接口创建线程。 - 线程同步:...
NIO包括通道(Channels)、缓冲区(Buffers)和选择器(Selectors),通过选择器,一个线程可以同时监控多个通道的事件,提高效率。文件“2013-12-26-java-newIO.txt”和“2013-12-27-java-newIO续.txt”应该会详细...
- **NIO(New IO)**:介绍通道(Channel)、缓冲区(Buffer)、选择器(Selector)等核心概念。 - **文件操作**:文件的创建、删除、重命名,以及文件读写的相关API。 6. **多线程** - **线程创建**:通过...
首先,NIO的核心组件包括Channel(通道)、Buffer(缓冲区)和Selector(选择器)。Channel是数据传输的通道,它可以双向传输数据,如文件、套接字等。Buffer是存储数据的容器,Java NIO提供了一系列不同类型的...
深入剖析Mina如何利用NIO和异步I/O机制构建高效网络通信框架,涉及线程模型、缓冲区管理、选择器策略等。 #### 四、Mina实例应用 虽然原文未详述实例部分,但Mina的应用实例通常涵盖: - 实现简单的聊天室功能 - ...
- **NIO的缓冲区**: 用于存储不同数据类型的临时容器,包括ByteBuffer、CharBuffer等。 - **NIO的非阻塞**: 通过设置Channel为非阻塞模式来避免等待IO操作完成。 - **Channel**: 可以理解为数据传输的通道,提供...
这些可能涵盖了高级IO特性,如NIO(New IO,Java 1.4引入)和NIO.2(Java 7引入),包括选择器(Selector)、通道(Channel)、缓冲区(Buffer)和文件属性的处理。还有可能涉及网络IO,如Socket和ServerSocket的...