写在前面
这里就是简单写一些面经的整理,全都来源于百度的别人的面经,纯粹是方便自己观看。
- Tcp和udp的区别。分别适用于哪些场景。
答:tcp是面向连接:tcp连接只能是点到点、一对一的;通过tcp
连接传送的数据,无差错,不丢失,不重复,且按序到达;tcp传输效率较低。udp是无连接的;udp支持一对一,一对多,和多对多的交互通信;udp尽最大努力交付,不保证可靠交付,udp传输效率高。 - 三次握手四次挥手。。是否可以两次握手,为何要四次挥手。
- Get和post区别。
- Http协议相关。
- 数据库四个范式的区别。在设计数据库的时候如何考量。 详细设计数据库步骤。
- Mysql和oracle区别。如何选。
- redis 内存满了怎么办?会存到disk吗?那MongoDB呢?
- Mysql的数据char varchar text的区别和运用场景
- Session断了有什么方式能够重新继续当前操作?
答:动态更新cookies,让session保持alive - 数据库的索引了解吗?干嘛用的?有哪些种类?主键索引和普通索引区别是什么?
- 对 Git 了解吗? git 里切换branch 或查看有哪些branch 用什么cmd?Git add file后又进行更改,之前的版本会被覆盖吗?可以用 Git rm 吗?
- 负载均衡有什么算法?(Round robin, Random, Hash ip, Add priority)
- Docker 了解吗?介绍一下
- 对于新的知识怎么学习?
- 进程和线程区别,线程之间通讯怎么实现?
- 进程间通信有什么方法?为什么需要这些方法?
- 知道协程吗?
- 死锁怎么产生的?举个例子, 那怎么解决死锁?
- 如果线程间抢占资源,会有什么后果?
- 当你读取一个文件 fail了,这个过程是怎么样的?
- TCP三次握手,四次挥手
- TCP,UDP之间的区别
- Session和cookie
- 二叉树知道吗?
- 写代码,判断两个二叉树是否相等,递归和迭代
- 反转字符串,写出时间复杂度最优和空间复杂度最优的solution
- Linux启动过程
- c语言各种变量所在的节
- C++虚函数的实现
- 有个变量i=5,两个线程执行i++5次,i的结果是多少。
- 两个单向链表,有公共节点,有多少种结构。(考虑有环和无环的各种情况)
- epoll的工作模式。
- 系统分析:维护在线人数的瓶颈分析。
- 计算题:100G的文件,分发的100个机器上,机器之间互相联通,带宽千兆。最少数据是多少
- 操作系统方面怎么样:进程和线程的区别,平常使用多进程还是多线程,这两个的优缺点
- 算法方面:排序算法大概说一下,堆排序的原理,堆排序的时间复杂度和空间复杂度
- 创建一个二叉树的时间复杂度
- 给一个整数值,输出整数值的逆序,不用栈方法,不用数组
- 1000个ip地址,找出不相同的个数,并分析时间空间复杂度,不用set
- 如果一个很大的程序很消耗资源,GC时间比较长,你该怎么优化
- 说下项目,为什么用webmagic,如何做的分布式,分布式锁怎么实现,如果1000个并发服务器
- 用分布式锁的话会有大量阻塞,这时怎么办
- 平常用linux用的多吗,常用命令,如何查找指定进程的系统使用资源
- 会用shell吗,现在给你一个任务,创建24个文件,并且文件名固定,如何写
- 队列和栈区别
- 两个栈实现队列,两个栈实现最小值栈
- 数据库的事务性质,如何实现这些性质
- 事务隔离级别有哪些,默认是什么级别。
- 已提交读有什么问题,用于什么场景
- 二叉树了解么,平衡二叉树呢,有什么场景会用到呢。
- 僵尸进程和孤儿进程是什么,分别有什么危害。
- 主从复制怎么实现。