周末这两天,集中精力理解NIO
感觉有许多地方需要观念上的改变的
例如连接,在java.io中,连接的概念就用Socket类来表述的,一个Socket连接就是一个Socket对象,很直观;
而在java.nio中,有三个类需要理解。
- Selector:是一个选择器,他只关注网络事件:接收、读、写;
- SelectionKey:描述了Selector和Channel之间的一种注册关系;
- Channel:通道,分为ServerSocketChannel和SocketChannel,可以想象成运输通道,每一个Socket连接的运输通道,向Buffer中读、写数据都是通过此通道。