1. 二叉树的深度
思路:看到二叉树,想想用递归,记得简化代码
数据库:
范式
第一范式:数据库表的每一项都是不可分割的原子数据项,不能是集合。比如班级信息表里面不能有班级的学生。
第二范式:在第一范式的基础上,所有属性完全依赖于主键,完全依赖就是不能取决于主键的一部分
第三范式:在第二范式的基础上,消除传递依赖,比如学生表里有学生属于的班级编号,但不能有班级的名称,班级人数等班级信息,因为班级信息可有由班级编号通过班级表推出来,有传递依赖
第一范式->第二范式->第三范式
数据冗余越来越少,查询越来越复杂
有数据冗余,但查询简单
事 ****务
并发控制的单位,是用户定义的一个操作序列,要么全做,要么全不做,是不可分割的。
1原子性
2一致性:
使数据库从一个一致性状态到另一个一致性状态
3隔离性:
一个事物的执行不被其他事务干扰
4永久性:
一个事务一旦提交,它对数据库的改变就是永久性的
常用 ****SQL语句
分组查询(avg max min)、复杂连接查询、嵌套查询、结果排序(逆序ansc)、
操作系统
错题
虚存=min ****(主存+辅存,逻辑地址)
进程和线程
进程是程序的一次执行,包括代码和数据,是CPU分配资源的基本单位,一个进程可以包括多个线程。进程之间通信方式:管道、SOCKET、信号量(互斥、同步)等。
子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。
线程是独立运行和独立调度的基本单位(线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度),线程之间共享进程的数据空间(借此通信)
进程的调度算法
文件系统
内存分配策略
计算机网络
HTTP协议
基于TCP协议的应用层协议
H TTP是一个普通用在浏览器和web服务器之间进行数据交换的 文本 协议
HTTP协议的ETAG响应头主要用于信息的过期验证
HTML错误代码
(1) 常见错误代码:
200服务器成功返回了网页,成功处理了请求
304未修改,自从上次请求后,请求的页面未被修改过,此时服务器不会返回网页内容,节省带宽和开销
404请求的网页不存在
500服务器内部错误
503服务器暂时不可用(超载、停机维护),通常只是暂时状态
(2) 1xx:临时响应,服务器端响应成功, 等待请求者进一步操作
(3) 2xx:响应成功
202接受请求,未处理
204处理了请求,但没有返回任何内容
(4) 3xx重定向,要完成响应,服务器需要进一步处理
301网页已被永久移动到新位置
302临时移动到新位置
305要求只能使用代理才能访问
(5) 4xx请求错误
400不理解请求语法
401要求身份验证,先登陆才能请求
403禁止访问,服务器拒绝请求
405请求中的方法被禁用
408请求超时
(6) 5xx服务器在处理请求时内部发生错误,来自服务器本身的错误
501服务器不具备完成该请求的功能
502服务器作为网关或代理,从上游服务器收到无效响应
504网关超时
505 HTTP版本不支持
TCP/IP与UDP
TCP与UDP
TCP面向连接、可靠的数据传输,有拥塞控制和流量控制,大量数据,速度慢
UDP非连接,不可靠的数据传输,少量数据,速度快
TCP建立连接的三次握手
详细过程和状态变化
为什么要三次?
TCP关闭连接的四次挥手
FIN- ->
<--FINACK
ß FIN
FINACK-->
如何提高UDP的可靠性
**应用层 **实现超时重传,客户端发送一个包,服务器返回一个包表示收到,如果客户端超过一定时间没有收到该包,就需要重传
备用
SOCKET编程
image
当recv函数在接受数据时是阻塞的,当返回值<0,说明连接出错
当返回值=0,表示对端关闭了连接
返回值>0,接受到的数据的大小
TCP/IP分层,各层作用
应用层:为操作系统、应用程序提供访问网络的接口(Telnet、FTP、HTTP、SNMP、DNS域名解析)
(表示层)
(会话层)
传输层:两点之间的根据使用的协议(TCP、UDP),传输相应数据报文,
网络层:整个网络的传输路径选择,路由(IP、RIP)
网络访问层:数据链路层、物理层的结合,数据链路层相邻节点之间数据帧传输,物理层就是光纤上比特级的数据传输。
PING操作的原理
使用ICMP,在IP主机、路由器之间传递控制消息
网络层的协议
IP协议 根据IP地址决定转发、路由的协议
ICMP本质理解为带差错报告的IP协议,在主机和路由器之间传递控制信息(网络通不通,主机可不可达,路由可不可达到)
ARP:将IP地址转化为MAC地址
RARP:物理地址转为IP地址
RIP
传输层的协议
TCP
UDP
SPX
应用层协议
HTTP
SMTP:简单邮件传输协议
DNS:
Telnet
FTP:文件传输协议
WWW:
NFS: 网络文件系统
DNS的完整流程(域名->IP地址)
DNS采用 **分布式 **的域名系统,减少故障发生
当一个应用需要把主机名解析为IP地址时,该应用程序就会调用解析程序,把待解析的域名放在DNS请求报文中,以 **UDP数据报 **方式发送给本地域名服务器,本地服务器在查找域名后,把对应的IP地址放在回答报文中返回,应用程序获得目的主机的IP地址后即可进行通信。若本地域名服务器不能解析该域名,则向上级域名服务器继续发送查询请求,直到可以解析为止。
image
备用
HTTP1.0/1.1区别
HTTP1.1中才有 cache-control响应头,主要用于控制信息在浏览器的缓存
HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求
缺陷:访问一个包含有许多图像的网页文件的整个过程包含了多次请求和响应,每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个文档和图像,器端每次建立和关闭连接却是一个相对比较费时的过程,并且会严重影响客户机和服务器的性能
HTTP 1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟
HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果
HTTP 1.1还提供了Host、身份认证、状态管理和Cache缓存等机制相关的请求头和响应头
作者:芥末无疆sss
链接:https://www.jianshu.com/p/5013e29ca724
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。