当前JavaEE初阶的阶段知识总结
-
多线程
-
文件IO
-
文件系统操作 ~~ File类.
-
文件内容操作 ~~ 读文件,写文件.
-
IO 流对象.
-
流(Stream),形象的比喻,读取文件,就像水流一样,读写文件的时候,和水流类似,读100字节,可以一次读1个字节,100次完成;也可以一次读10个字节,10次完成……
-
在Java标准库中,提供了一组类,负责完成IO流式操作.
-
字节流: 以字节为基本单位
- InputStream 输入流,把数据从硬盘,读取到内存中.
- OutputStream 输出流,把数据从内存写入到硬盘里.
-
字符流: 以字符为基本单位
- Reader 输入流
- Writer 输出流
-
上述这四个类,实际上,标准库还提供了很多具体的类的实现,虽然这里涉及到的类非常多,但是实际上大家的使用方法,都是差不多的.
四个核心操作:
-
打开文件 ~~ 构造流对象的时候,指定文件路径(绝对路径,相对路径)
-
读文件 ~~ read 参数是一个输出型参数
-
写文件 ~~ write
-
关闭文件 ~~ close
-
-
-
-
-
网络编程&网络原理
-
协议
网络中的基本概念 ~~ 协议: 针对数据格式的约定.
- 协议分层
- 网络通信,是一个很复杂的工作,如果使用一个协议来完成所有的工作,这个协议就会很复杂. => 由此想到了,协议拆分,大的协议变成多个小点的协议,每个协议负责一部分工作.
- 由于拆分出来的协议太多了,按照协议的功能/作用,进行不同程度的分类 => 即协议分层,而为了让协议之间更好的配合,约定,上层协议调用下层协议,下层协议给上层协议提供服务.(协议之间不能跨层交互) => 就构成了一个**“协议栈**”
- “协议栈”: OSI 七层模型, TCP/IP 五层模型
- 应用层: 数据具体要怎么使用.
- 传输层: 只考虑起点和终点.
- 网络层: 负责任意两个节点之间的传输,路径传输.
- 数据链路层: 负责相邻节点之间的数据传输(通过网线/光纤/无线直接相连的两个路由器/交互机/主机….)
- 物理层: 信息传输的公路
- 网络数据传输的基本流程:
- 封装: 发送方,把数据从上到下层层加上协议报头(包装快递).
- 分用: 接受方,把数据从下层到上层进行解析(拆快递).
- 协议分层
-
网络编程
-
Socket (网络编程套接字) ~~ 注: UDP,TCP都是传输层协议.
-
UDP 的 socket
-
DatagramSocket , 代表一个 socket 对象,本质上一个文件,相当于网卡的抽象.
-
DatagramPacket , 代表一个 UDP 数据报.
-
-
TCP 的 socket
-
ServerSocket 专门给服务器用的.
-
Socket 服务器客户端都会用到.
-
编写TCP的客户端服务器程序的时候,涉及到“长连接”“短连接”的问题.
-
TCP服务器如果不使用多线程,可能会无法处理多个客户端.
-
-
服务器程序典型流程
- 启动服务器(初始化),进行 Socket 的实例化.
- 进入主循环(while true)
- 读取请求并解析
- 根据请求计算响应
- 把响应写回到客户端
-
客户端典型流程
- 启动客户端,进行 socket 实例化.
- 进入主循环.
- 读取用户输入的内容.
- 构造请求并发送.
- 读取响应结果.
- 把结果显示给用户.
-
-
-