Java NIO学习笔记之一-资料整理

最近要用Java写一个socks proxy,本来基于jsocks改了改,但是jsocks的BIO和线程模型到了高并发下简直惨不忍睹。想了一下,最后决定用NIO重写一个socks proxy了,为了方便,可能会忽略掉socks5的认证部分。

说来惭愧,用Java这么久了,对NIO的理解完全停留在IO模型的概念上,一直没有真正写过一个意义上的NIO程序,所以趁机详细学习一下。

NIO核心API

@左耳朵耗子写过一篇关于NIO Selector的分析http://blog.csdn.net/haoel/article/details/2224055。耗子一直是我的偶像,这篇文章页写的不错,这里就不重复描述了,引用一下:

Channel

包含数据且用于读写的线形表结构。其中还提供了一个特殊类用于内存映射文件的I/O操作。

Charset

它提供Unicode字符串影射到字节序列以及逆映射的操作。

Buffer

包含socket,file和pipe三种管道,都是全双工的通道。

Selector

多个异步I/O操作集中到一个或多个线程中(可以被看成是Unix中select()函数的面向对象版本)。

一些开源项目中的NIO

我觉得学习NIO最好的方式就是看一些开源项目的实现。@武汉伢袁志俊写过一个系列:http://blog.csdn.net/cutesource/article/details/6192016

下篇文章从Buffer开始,系统的学习一下。

你可能感兴趣的:(nio)