Java基础-12(软件结构、网络通信协议、CS\BS文件上传、函数式接口、Stream流、方法引用)
1. 软件结构
C/S结构:客户端–服务器结构(qq,百度网盘)
B/S结构:浏览器–服务器结构(IE,火狐浏览器)
2. 网络通信协议
UDP协议:无连接,耗资小,通信效率高,但是不能保证数据的完整性,数据被限制在64KB以内
TCP协议:
完成三次握手后,连接建立, 客户端与服务器开始进行数据传输。TCP协议有连接,可以保证数据传输的安全
网络编程三要素:协议、IP地址、端口号
端口号原理:
客户端和服务器之间按照TCP协议通信的原理:
2.1 TCP客户端代码实现
因为还没有服务器,以上代码会出现连接异常
2.2 TCP服务器端代码实现
实例:文件上传
原理
客户端代码:
服务器端代码:
解决文件上传案例的阻塞问题的方法:
文件上传案例的优化:
1.为每个上传的案例命名
2.服务器随时接受上传案例
注意事项:run方法父类没有抛出异常,所以重写(覆盖)的时候也不能将异常声明抛出,需要使用try {} catch () {} 处理异常。
3. 模拟BS服务器
原理:
代码:
4.函数式接口
4.1概念
4.2 格式
4.3 函数式接口的使用
作为方法的参数:
作为方法的返回值类型:
4.4常用的函数式接口
1.Supplier接口
练习:获取数组中的最大值
2.Consumer接口
用法
默认方法andThen
3. Predicate接口:
用法:
默认方法:and
默认方法:or
默认方法:negate
4.Function接口
用法:
默认方法:andThen
5.Stream流
5.1 流式思想概述
5.2 获取Stream流的方法
5.3 Stream流中的常用方法
- forEach方法(终结)
- filter方法
注意:Stream流的特点
- map方法
- count方法(终结)
- limit方法
- skip方法
- concat方法
6.方法引用
6.1 方法引用符的介绍
6.2 方法引用实例
- 通过对象名引用成员方法
- 通过类名引用静态成员方法
-
通过super引用父类的成员方法
-
通过this引用本类成员方法
-
方法引用–类的构造器
-
数组的构造器引用