基础部分
- TCP报头格式
- UDP报头格式
- TCP/UDP区别(不仅是宏观上的,最好能根据各自的机制讲解清楚)
- HTTP状态码(最好结合使用场景,比如在缓存命中时使用哪个)
- HTTP协议(一些报头字段的作用,如cace-control、keep-alive)
- OSI协议、TCP/IP协议以及每层对应的协议。
- SESSION机制、cookie机制
- TCP三次握手、四次挥手(不只是每次请求的过程,各种FIN_WAIT、TIME_WAIT状态也要掌握)。
- 打开网页到页面显示之间的过程(涵盖了各个方面,DNS解析过程,Nginx请求转发、连接建立和保持过程、浏览器内容渲染过程,考虑的越详细越好)。
- http和https区别,https在请求时额外的过程,https是如何保证数据安全的
- IP地址子网划分
- POST和GET区别
- DNS解析过程
深入部分
14. TCP如何保证数据的可靠传输的(这个问题可以引申出很多子问题,拥塞控制慢开始、拥塞避免、快重传、滑动窗口协议、停止等待协议、超时重传机制)
15. 地址解析协议ARP
16. 交换机和路由器的区别
数据库基础部分
- 事务四大特性(ACID)
- 数据库隔离级别,每个级别会引发什么问题,mysql默认是哪个级别
- MYSQL的两种存储引擎区别(事务、锁级别等等),各自的适用场景
- 数据库的优化(从sql语句优化和索引两个部分回答)
- 索引有B+索引和hash索引,各自的区别
- B+索引数据结构,和B树的区别
- 索引的分类(主键索引、唯一索引),最左前缀原则,哪些情况索引会失效
- 聚集索引和非聚集索引区别。
- 有哪些锁(乐观锁悲观锁),select时怎么加排它锁
- 关系型数据库和非关系型数据库区别
- 了解nosql
- 数据库三范式,根据某个场景设计数据表(可以通过手绘ER图)
- 数据库的主从复制
- 使用explain优化sql和索引
- long_query怎么解决
- 内连接、外连接、交叉连接、笛卡儿积等
深入
- MVCC机制
- 根据具体场景,说明版本控制机制
- 死锁怎么解决
- varchar和char的使用场景。
- mysql并发情况下怎么解决(通过事务、隔离级别、锁)
Redis
- redis数据结构有哪些
- redis队列应用场景
- redis和Memcached(支持数据持久化)
- 分布式使用场景(储存session等)
- 发布/订阅使用场景
操作系统
- 内存的页面置换算法
- 进程调度算法
- 进程间通信方式
- 进程线程区别
- 进程之间的通信
- 父子进程、孤儿进程
- fork进程时的操作
算法基础
- 二叉树相关(层次遍历、求深度、求两个节点距离、翻转二叉树、前中后序遍历)
- 链表相关(插入节点、链表逆置、使用链表进行大数字的加减,双向链表实现队列、寻找链表中的环)
- 堆(大量数据中寻找最大N个数字几乎每次都会问,还有堆在插入时进行的调整)
- 排序(八大排序,各自的时间复杂度、排序算法的稳定性。快排几乎每次都问)
- 二分查找(一般会深入,如寻找数组总和为K的两个数字)
- 两个栈实现队列。
- 图(深度广度优先遍历、单源最短路径、最小生成树)
- 动态规划问题。
深入
- 红黑树性质
- 分治法和动态规划的区别
- 计算时间复杂度
- 二叉树和哈希表查找的时间复杂度
栈和链表是面试算法的时候经常用到的工具,多考虑怎么用数据结构的性质解决,因为面试不像笔试,对基础数据结构关注的比较多一些,一般问题也比较简单。然后取模也是常用的工具。
LINUX
- 硬链接和软连接区别
- kill用法,某个进程杀不掉的原因(进入内核态,忽略kill信号)
- linux用过的命令
- 系统管理命令(如查看内存使用、网络情况)
- 管道的使用
- grep的使用,一定要掌握,每次都会问在文件中查找
- shell脚本
- find命令
- awk使用
语言部分(PHP)
- 数组操作函数
- 字符串操作函数(数组和字符串的函数是最常问的,非常多,一定不要记混了)
- 指针和引用区别
- 堆和栈的区别
- == ===区别
- PHP的垃圾回收机制
- zval结构
- 防sql注入
- 跨域问题
- 长链接和长轮询
面向对象、设计模式
- 接口和抽象类区别
- 单继承
- construct的调用顺序(子类父类之间)
- 设计模式(工厂模式、策略模式、单例模式、装饰模式比较常见)
- OOP特性,通过哪些机制实现的
- 重写和重载区别
- 静态类静态方法
- 根据某个需求设计一个类(主要考虑类之间的继承关系和属性的权限设置)
项目
- 项目中遇到的困难
- 系统的量级、pv、uv等
- 应对高并发的解决办法(分布式)
- 在项目中主要负责了哪些工作。
- nginx的负载均衡
- 分布式缓存的一致性,服务器如何扩容(哈希环)
粉丝福利, 免费领取C/C++ 开发学习资料包、技术视频/项目代码,1000道大厂面试题,内容包括(C++基础,数据库,高性能网络,组件设计,中间件开发,框架,分布式架构,云原生等进阶学习资料和最佳学习路线)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓