java NIO,socket
计算机知识思维导图:java NIO,socket。网页展示前三层结构,可在线查看完整脑图并下载 GoMind 文件。
2026-08-25
## java NIO,socket ### java NIO,socket #### io ##### 基本概念 ##### 支持 ##### IO 5中模型 #### nio ##### 基本概念 ##### 支持 #### socket ##### JSR-356 WebSocket API规范中文版下载 #### 关系 ##### Java NIO和IO的区别 ##### WebSocket与Socket的关系 #### 支持 ##### Netty ##### 如果没有Netty? ##### Mina靠apache生存,而Netty靠jboss,和jboss的结合度非常高 ##### Jetty 和Netty的区别 ##### jdk的nio #### 参考 ##### nio ##### webSocket ##### netty > 仅展示前三层结构;请在线查看完整脑图或下载 GoMind 文件。
java NIO,socket
java NIO,socket
IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。
Java IO的各种流是阻塞的。这意味着,当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入。该线程在此期间不能再干任何事情了
基本概念
1、字节读写(InputStream/OutputStream)
2、字符读取(FileReader/FileWriter)
3、行读取(BufferedReader/BufferedWriter)
支持
blocking I/O
nonblocking I/O
I/O multiplexing (select and poll)
signal driven I/O (SIGIO)
asynchronous I/O (the POSIX aio_functions)
IO 5中模型
io
Channel :一个新的原始 I/O 抽象。
支持锁和内存映射文件的文件访问接口
提供多路 (non-bloking) 非阻塞式的高伸缩性网络 I/O
nio 是 java New IO 的简称,在 jdk1.4 里提供的新 api
Java NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取
采用非线程的方式来处理,只是简单地调用处理的方法。在实际中,如果存在大量连接、读写请求,可以考虑使用线程池来更大程度地并发处理,提高服务端处理的速度和吞吐量,提升系统性能
基本概念
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
是一块连续的内存块。
是 NIO 数据读或写的中转地。
Buffer:
数据的源头或者数据的目的地
用于向 buffer 提供数据或者读取 buffer 数据 ,buffer 对象的唯一接口。
异步 I/O 支持
Channel:
Channel 和 buffer 是 NIO 是两个最基本的数据类型抽象
Buffer 常见类型: ByteBuffer 、 MappedByteBuffer 、 CharBuffer 、 DoubleBuffer 、 FloatBuffer 、 IntBuffer 、 LongBuffer 、 ShortBuffer 。
单个线程通过Selector可以管理多个SocketChannel
选择器(Selector)
支持
nio
JSR-356 WebSocket API规范中文版下载
socket
面向流
阻塞IO
无选择器
IO
面向缓冲
非阻塞IO
选择器
NIO
Java NIO和IO的区别
Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。
WebSocket则是一个典型的应用层协议
WebSocket与Socket的关系
关系
1)本质:JBoss做的一个Jar包
2)目的:快速开发高性能、高可靠性的网络服务器和客户端程序
3)优点:提供异步的、事件驱动的网络应用程序框架和工具
通俗的说:一个好使的处理Socket的东东
Netty
java.net + java.io
远古
java.nio
近代
Mina,Grizzly
其他
如果没有Netty?
Mina靠apache生存,而Netty靠jboss,和jboss的结合度非常高
Jetty是一个Servlet容器
Netty也是一个NIO的后端框架,不依赖于web容器
Jetty 和Netty的区别
apache mina
jboss的netty
sun的grizzly
jdk的nio
支持
JAVA NIO 简介 - Java综合 - Java - ITeye论坛
Java文件读写IO/NIO及性能比较总结 - Java我人生的技术博客 CSDN.NET
Java NIO和IO的区别
Java NIO系列教程(十二) Java NIO与IO
Java NIO与IO的详细区别(通俗篇) - justjavac(迷渡) - ITeye技术网站
Socket与NIO方式的区别 - 折翼只为爱 - ITeye技术网站
基于Java NIO的Socket通信 - 千与的专栏 - 博客频道 - CSDN.NET
深入浅出NIO Socket实现机制 - 简书
nio
JSR-356 WebSocket API规范中文版下载
Java后端WebSocket的Tomcat实现 - 幸福流浪 - 博客园
javax实现websocket通信 - CQUPTCMJ的博客 - 博客频道 - CSDN.NET
webSocket 入门demo - 黄彪学习笔记 - ITeye技术网站
Java后端WebSocket的Tomcat实现_陈祖煌的博客
WebSocket 和 Socket 的区别 - 文章 - 伯乐在线
WebSocket介绍,与Socket的区别 – 爱上极客
webSocket
Netty系列之Netty高性能之道
java nio框架netty 与tomcat的关系 - ITeye问答
Netty4实现Websocket网页间聊天 - 囚徒困境
netty
参考