暑期后端高频问题汇总
菜鸡暑期一共面了40+场的大厂的面试,在这里汇总我遇见的问题及高频问题,希望帮助到五月份的同学们拿到暑期offer。先叠个甲,可能因为学历问题,腾讯以及阿里给我的面试并不多,40场中接近一半是字节,所以可能会有一些内容不涉及,仅作参考。
计算机网络
- TCP三次握手四次挥手,为什么是三次四次问题
- time_wait状态的作用,以及为什么持续时间是2MSL?现代网络发展中,这个还是固定的2MSL吗?
- TCP超时重传机制,sack算法,hpack算法
- TCP拥塞控制(慢启动,拥塞发生,拥塞避免,快速恢复)
- HTTP2和HTTP3的特点
操作系统
- 进程间通信方式
- Linux为何采用页式内存管理
- io多路复用,epoll和select、poll的区别
- 零拷贝(mmap,zerofile)这个可以结合rocketmq和kafk来说
Mysql
- innoDB采用的数据结构
- 为何采用B+树而非其他结构
- 什么叫覆盖索引
- 什么叫索引下推
- 联合索引的最左前缀法则,注意优化器可以优化where的条件顺序
- RR隔离级别下,readview和锁机制如何减少幻读的发生的
- undo log的WAL机制
- 主从复制的同步机制、半同步机制、异步机制
- 慢sql查询优化思路
Redis
- 常见的数据结构(string,list,hash,set,zset)
- zset的底层实现
- redis实现分布式锁(原子性,如何避免死锁等问题)
- aof重写机制
- rdb的写时复制技术
- redis集群分片为何采用gossip协议同步元数据
- redis集群分片解决单机实例压力大的问题
- mysql与redis的数据一致性问题
Java
- HashMap的原理
- ConcurrentHashMap的原理
- synchronized关键字在字节码层面的原理
- synchronized和reentrantlock的区别
- ThreadLoacl内存泄露问题
- 双亲委派机制
- g1垃圾回收器和cms垃圾回收器对比
Mq
- mq如何保证数据不丢失
- mq如何保证消息的顺序性消费
- rocketmq和kafka的架构区别
- rocketmq如何实现的事务消息
- rocketmq如何实现的延时消息
场景题
- 设计一个自己的配置中心。这个问题问了非常多次,可能和我的实习有关系,我感觉起码问了10次这道设计。我通常回答从下面三个角度来想:
- 服务端的推模式(SSE、websocket)
- 客户端的长轮询 + 事件驱动拉模式
- 推拉结合模式
- 使用双buffer设计一个无锁的高效并发系统
算法题
- 反转链表
- 判断回文链表
- 数组第K大元素(快速选择)
- 最长回文子串(dp+中心扩散)
- 带过期时间的LRU(堆)
- 编辑距离(dp)
- 链表是否存在环
- 多线程顺序打印
- 36进制加法 + 链表相加组合题
- 最长递增子序列(nlogn时间复杂度)
- 由前序遍历和中序遍历构建树
- 全排列
- 带重复数字的全排列
大部分问题其实还是蛮经典的,希望能帮助到各位同学,可以的话能不能给点花花想当校招领航者