每天一套面试题Day36-八股高频(17)
由于课设六级期末都要搞,加之以及背的需要复习,八股近一个月每天数量会视情况而定。
84.请你说说Java中重载和重写的区别。
这里的参数列表不同指的是参数类型,数量,顺序(参数类型的顺序)至少有一项不同。
85.为什么需要四次挥手
“四次挥手是由TCP连接的全双工特性和半关闭状态决定的。”
- 全双工:连接有A->B和B->A两个独立通道,需要各自关闭。
- 核心过程:主动关闭方(如客户端)先发
FIN关闭自己的发送通道;被动关闭方先回ACK确认,然后在自己数据发送完毕后,再发FIN关闭自己的发送通道;最后主动方回ACK确认。 - 为什么是四次:被动方的
ACK和FIN通常无法合并发送。因为ACK是协议栈立即回复的,而FIN需要等待应用层所有数据发送完毕,两者存在时间差,这就产生了“半关闭”状态。 - 对比握手:三次握手时,服务端的
SYN和ACK都是针对连接建立的,可以同时发出,所以能合并。
86.UDP 和 TCP 的应用场景
牛客的图片
由于TCP要做到可靠,有序号,超时重传,ACK,三次握手,四次挥手等,于是实时性不得不妥协。
所以可靠就选TCP,FTP文件传输协议,HTTP,HTTPS,实时就选UDP,比如语音视频游戏等低延时场景。
如果你既想要可靠又想要实时,那么UDP上层再封装,比如QUIC
TCP的核心设计目标——提供一对一的、可靠的、基于连接的字节流服务——这个根本目标,同时决定了它必须要有连接建立/释放过程(握手挥手),并且天然无法支持广播/多播。
每日一套面试真题 文章被收录于专栏
记录刷过的面试真题
