一站式学习Java网络编程 全面理解BIO:NIO:AIO1
需积分: 0 114 浏览量
更新于2022-08-08
1
收藏 24.76MB DOCX 举报
全面理解 Java 网络编程 - BIO、NIO、AIO
本课程旨在帮助学生全面理解 Java 网络编程中的 BIO、NIO、AIO 三剑客,掌握 RPC 编程的基础知识,并结合实战项目巩固所学。
一、网络编程三剑客 - BIO、NIO、AIO
BIO(Blocking I/O)是一种同步阻塞式 I/O 模式,服务器需要为每个客户端分配一个独立的线程来处理请求,导致服务器资源浪费。
NIO(Non-Blocking I/O)是一种异步非阻塞式 I/O 模式,服务器使用单个线程来处理多个客户端请求,提高了服务器的性能和可扩展性。
AIO(Asynchronous I/O)是一种异步非阻塞式 I/O 模式,服务器使用回调函数来处理客户端请求,提高了服务器的性能和可扩展性。
二、网络层的解析与协议
网络层是 OSI 七层模型中的第三层,负责路由选择和路径选择。网络层协议包括 IP 协议、ICMP 协议、IGMP 协议等。
URL(Uniform Resource Locator)是一种统一资源定位符,用于标识互联网上的资源。URL 由协议、主机名、端口号、路径、查询字符串和 片段组成。
DNS(Domain Name System)是一种域名解析系统,负责将域名解析为 IP 地址。DNS 解析过程包括递归查询和迭代查询两种方式。
三、java.io 专业术语
java.io 是 Java 中的输入/输出流库,提供了多种流类型,包括字符流和字节流。字符流用于处理文本数据,字节流用于处理二进制数据。
Reader 和 Writer 是 java.io 中的抽象类,提供了基本的读取和写入操作。InputStreamReader 和 OutputStreamWriter 是 Reader 和 Writer 的实现类,提供了字节流和字符流之间的转换。
FilterReader 和 FilterInputStream 是 java.io 中的装饰器模式,提供了流的装饰功能,可以在基本流上添加新的功能。
四、java.io 之字节流
字节流是 java.io 中的基本流类型,用于处理二进制数据。字节流包括 InputStream 和 OutputStream 两种,前者用于输入,后者用于输出。
DataInputStream 和 DataOutputStream 是 java.io 中的高级字节流,提供了基本类型的读取和写入操作。
五、java.io 之字符流
字符流是 java.io 中的高级流类型,用于处理文本数据。字符流包括 Reader 和 Writer 两种,前者用于输入,后者用于输出。
InputStreamReader 和 InputStreamReader 是 java.io 中的桥梁流,提供了字节流和字符流之间的转换。
六、Socket 概述
Socket 是网络通信的端点,提供了进程间通信的基础。Socket 可以分为 TCP Socket 和 UDP Socket 两种,前者提供了可靠的连接,后者提供了不可靠的连接。
Unix 中的 Socket 是一种特殊的文件描述符,提供了进程间通信的基础。
通过 Socket,客户端可以与服务器之间建立连接,实现数据的传输。

StoneChan
- 粉丝: 31
最新资源
- 微信小程序 - 扩展插件(发送请求、Promise API、表单验证、Restful API).zip
- 微信小程序-小商城后台(基于 Node.js、MongoDB、Redis 开发的系统...).zip
- 答题类微信小程序完整源码.zip
- Wafer - 企业级微信小程序全栈方案(1).zip
- 微信相册小程序.zip
- 物业管理微信小程序.zip
- 爬取全国建筑市场监管公共服务平台企业数据.zip
- 微信小程序图片裁剪工具(1).zip
- Wafer - 企业级微信小程序全栈方案.zip
- 微信小程序--健康菜谱.zip
- 微信小程序-小商城前台(基于 WeUI.wxss、ES6 前端技术开发...).zip
- 微信小程序源码,模板.zip
- 微信小程序-拼音导航 .zip
- 原生微信小程序-自定义picker选择器.zip
- 微信小程序,集成redux.zip
- 微信小程序加密数据解密算法Go版.zip