本文主要是介绍面试必背必备,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
面试必背必备
- 数据结构与算法
- 常见排序算法及最坏时间复杂度
- 计算机网络
- 谈谈TCP的三次握手
- 2.1、握手过程
- 2.2、 为什么要三次握手
- Java相关
数据结构与算法
常见排序算法及最坏时间复杂度
《忆排序》
选泡插, 选择 冒泡 插入
快归堆希桶计基, 快速 归并 堆 希尔 桶 计数 基数排序
恩方恩老恩一三, 平均时间复杂度为 n 2 * 3 {选泡插 } nlog2n * 3{快归堆} n1.3{希尔}
对恩加K恩乘K, n+k * 2{桶 计数} n*k {基数}
不稳稳稳不稳稳,
不稳不稳稳稳稳。
计算机网络
谈谈TCP的三次握手
2.1、握手过程
第一次握手:建立连接时,客户端发送SYN包(seq【序列号】=x)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
2.2、 为什么要三次握手
三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常的。
第一次握手:Client 什么都不能确认;Server 确认了对方发送正常,自己接收正常
第二次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:对方发送正常,自己接收正常
第三次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己发送、接收正常,对方发送、接收正常【第三次握手Server知道自己的发报能力和Client收报能力正常】
所以三次握手就能确认双发收发功能都正常,缺一不可。
Java相关
这篇关于面试必背必备的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!