Java Netty 面试题知识点总结 Java Netty 是一个基于 Java 的网络编程框架,使用 NIO 实现高性能的网络编程。以下是 Java Netty 面试题中的一些重要知识点: 1. BIO、NIO 和 AIO 的区别 BIO(Blocking I/O):一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。 伪异步 IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。 NIO(Non-Blocking I/O):一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有 I/O 请求时才启动一个线程进行处理。 AIO(Asynchronous I/O):一个有效请求一个线程,客户端的 I/O 请求都是由 OS 先完成了再通知服务器应用去启动线程进行处理。 2. NIO 的组成 Buffer:与 Channel 进行交互,数据是从 Channel 读入缓冲区,从缓冲区写入 Channel 中。 Channel:表示 IO 源与目标打开的连接,是双向的,但不能直接访问数据,只能与 Buffer 进行交互。 Selector:可使一个单独的线程管理多个 Channel,open 方法可创建 Selector,register 方法向多路复用器器注册通道,可以监听的事件类型:读、写、连接、accept。 3. NIO 的特点 事件驱动模型、单线程处理多任务、非阻塞 I/O,I/O 读写不再阻塞,而是返回0、基于 block 的传输比基于流的传输更高效、更高级的 IO 函数 zero-copy、IO 多路复用大大提高了 Java 网络应用的可伸缩性和实用性。基于 Reactor 线程模型。 4. Netty 框架 Netty 是一个高性能、异步事件驱动的 NIO 框架,使用了 Reactor 线程模型,提供了高效的网络编程解决方案。 5. Netty 的特点 * 高性能:Netty 使用了 NIO 和异步事件驱动模型,提供了高效的网络编程解决方案。 * 异步事件驱动:Netty 使用了 Reactor 线程模型,提供了高效的异步事件驱动模型。 * 可扩展性强:Netty 提供了强大的可扩展性,支持多种协议和传输层。 * 易于使用:Netty 提供了简单易用的 API,易于开发和维护。 这些知识点是 Java Netty 面试题中的重要内容,掌握这些知识点能够帮助您更好地理解 Java Netty 框架和 NIO 编程模型。
剩余8页未读,继续阅读
- 粉丝: 2396
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助