Java-彻底弄懂netty-程序员深入理解NIO怎么操作buffer-知识铺


知识店:致力于创造轻松的知识点,每次不断更新知识点,阅读不累。不要花太多时间,不断唤醒你记忆中的知识点。

首先,缓冲区使用场景

主要处理通道通道,无论是从通道读取数据到缓冲区,还是将数据从缓冲区写入通道,都与Buffer不可分离。

二,缓冲精华

缓冲区缓冲区本质上是一块连续的内存。 NIO将此缓冲区封装到对象中,并提供一组遍历方法来操作缓冲区。

三,Buffer的基本方法

3.1开放缓冲区方法

3.1.1 ByteBuffer.allocate(1024):

一个。打开一个1024字节的连续空间。

湾创建的缓存位于JVM堆上,也称为堆字节缓存。

C。此缓冲区具有进程,用户空间和内核空间数据复制操作。

d。因为它是在堆上操作的,所以创建效率很高。适合频繁创建缓冲区场景。

即读写效率低,用户数据和内核模式具有数据复制过程。

3.1.2 ByteBuffer.allocateDirect(1024);

一个。打开一个1024字节的块,堆外的内存区域。

湾直接在系统内存中创建一个连续的缓冲区。

C。真正意义上的零拷贝。

d。创建效率低,适合于以低频率创建缓冲场景。

即高读写效率,直接操作堆外内存,无需复制。

五,缓冲类型

每种基本类型的缓冲区

ByteBuffer

MappedByteBuffer对具有高读写性能的大型文件进行操作。

CharBuffer

双缓冲

FloatBuffer

IntBuffer

LongBuffer

ShortBuffer

如果它适合您,请轻轻点击它。

http://war.shsyty.cn