基础知识总结

操作系统

用户态内核态

有哪些缓存策略

进程和线程的区别

进程是操作系统资源分配的基本单位,线程是任务调度和执行的基本单位.
线程是进程的一部分,一个进程可以有多个线程
进程间切换的开销比较大,线程切换开销小

进程间通信七种方式

进程间通信七种方式

僵尸进程和孤儿进程

死锁

互斥,不可剥夺,循环等待,对于资源的请求保持

linux inode

中文译名,索引节点,存储文件元信息的区域。
inode包含,文件字节数,创建时间,所有者,链接数等数据,查看详细信息stat xxx
在linux中所有的东西都是文件。
linux用inode来标示不同的文件。

  • 硬链接
    多个文件拥有相同的inode号码,不同的文件名指向相同的内容。
    删除一个文件不影响另一个文件的访问。
  • 软链接
    软连接指向的另一个文件的文件名,而不是inode,因此另一个文件的inode连接数不会变化,当另一个文件删除之后,现在的文件也不能访问了。
  • 大小
    一个inode 128或者256字节
    一般是每1或者2kb就设置一个inode,在硬盘格式化的时候inode数量就确定好了,所以有的时候可能出现,明明硬盘还有空间但是无法创建新文件的情况,这就是inode不足导致的。

数据库

数据库范式

属性原子性 属性完全依赖于主键,要有一列属性将数据完全分开 一个表不包含另一个表已包含的非关键信息

redis数据类型

字符串,hash,列表,集合,有序集合

数据库隔离级别,脏读幻读

需要了解的知识
解决幻读:可串行化,事物的每条语句前加锁

索引

质量很高的讲解索引的博客

redis

redis的面试问题

计算机网络

DHCP

拥塞控制,流量控制

DNS迭代查询和递归查询

1.客户机和DNS服务器之间是递归查询,若DNS服务器本身不能解析,则向另一台DNS服务器请求
2.DNS服务器之间是迭代查询,当DNS1请求发送给DNS2不能解析时,则DNS2将DNS3的ip发送给DNS1,以便DNS1向3查询.

get和post区别

1.get会缓存,需要随机数或者时间戳解决,post没有这个问题
2.get没有请求正文,只能用queryString来提交,post有正文
3.因为get会缓存,所以又一定的安全隐患,敏感的数据要用post

http和https

http明文,https密文

  • https加密
    1.客户端发起https请求
    2.服务端配置证书,传递证书
    3.客户端解析证书也就是公钥,然后将密码用公钥加密,传递给服务器.
    4.服务器解析密码,以后之间的传输信息用这个密码进行加密

输入一个url后发生了什么

1.DNS根据url找到ip地址
2.浏览器和ip地址之间建立tcp链接
3.浏览器想服务器发送http请求
4.服务器返回数据
5.服务器解析html,css,js

七层网络协议和四层网络协议

ISO七层网络协议:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
TCP/IP四层协议:网络接口层,网络层,传输层,应用层.

网络接口层=物理层+数据链路层
网络层 = 网络层
传输层 = 传输层
应用层 = 会话层 + 表示层+ 应用层

TCP协议在传输层,ip协议在网络层

UDP与TCP区别

1.tcp面向链接,udp无连接
2.tcp可靠,udp尽最大努力交付
3.udp实时性更好
4.tcp点到点,udp一对一,一对多,多对一

tcp握手挥手

  • 为什么三次握手而不是两次
    为了实现可靠传输tcp通信的双方需要维护一个序列号,收到序列号的时候,需要给对方发送一个确认消息
    三次握手:a给b发连接请求(SYN = 1,seq=x),b回复a(SYN=1,ACK =1,seq = y,ack = x+1),a给b回复(ACK = 1,ack = y+1)
    因为tcp是双向通信协议,双方需要同步序号,如果两次握手则有一方没有同步
  • 为什么是四次挥手而不是三次
    因为客户端发送断开链接请求的时候,服务端收到并且发送会一条确认信息,但是此时可能服务端还没有发送完自己的信息,因此,他在发送完自己的要发送的信息之后还会发送一个FIN信息,客户端收到FIN信息再回一个返回信息。
  • 为什么要2MSL客户端才close
    因为考虑到网络丢包的问题,服务端如果没有收到FIN,则不断发送FIN,如果直到两个MSL的时候客户端还是没有收到FIN,则认为服务器以及断开了,则安心下岗。

数据结构与算法

b-树与b+树区别

b+树只有在叶子节点才命中.

平衡树

  • 为什么有平衡树
    让增删查的时间只与树的高度有关,而与树的容量无关
  • 优点
    增删查的时间最坏情况下都是lonN。
  • 缺点
    插入删除后的旋转成本比较大

数组和链表的区别

数组需要连续的空间,链表不需要

杂项

跨域请求和CSRF

RPC

远程调用,像在本地一样调用远程服务器的方法.

RESTful

1.每一个url代表一个资源
2.面向资源的
3.http协议
4.post,get,delete,put

restful设计url

nodejs

宏任务,微任务.

遇到异步函数,函数入站,主线程执行完毕之后,异步函数出站.
先执行微任务,后执行宏任务.

实现一个eventEmitter类

childProcess模块进程间通信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值