一 . NIO,非阻塞通信,通信技术的底层实现。Java 领域里大名鼎鼎的NIO框架--Netty。
1. NIO的老前辈--BIO (阻塞通信)
2. 待字闺中的通讯技术-- AIO(异步通信)
Java NIO 虽然提供了非阻塞的网络通信框架,但是它的设计带来了很多编程难题。
二 .难懂的ByteBuffer
Java NIO 抛弃了我们所熟悉的 Stream byte[]等数据结构,设计了一个全新的数据结构 -- ByteBuffer,ByteBuffer的主要使用场景是保存从Socket中读取的输入字节流,并且循环利用,降低GC的压力。
ByteBuffer的伪代码:
1 byteBuffer = ByteBuffer.allocate(N) ;
2. readableByteChannel.read(byteBuffer);
3. writableByteChannel.write(byteBuffer);