两个面试官一起面的, 先是写了一道简单的把数字用逗号格式化的题目, 然后是问了项目的一些细节, 最后面试官开始拿着一张题库从头开始问算法题,给一个类似60000这样的数字,用逗号格式化成60,000这样的字符串描述一下快速排序的过程hashtable的实现,和红黑树的关系,如果哈希碰撞了,有哪些解决方案tcp和udp的区别介绍一下聚簇索引和二级索引innodb和myism的区别acid代表什么?底层实现的原理是什么为什么索引的主键建议是设置成连续自增的int整型描述一下树这种数据结构描述一下大小堆什么是联合索引,如果设置了联合索引a,b的话,那么下面四个语句用到了哪些索引:where a=0 and b=0 , where b=0 and a =0, where a = 0 or b=0, where a>0 or b =0进程和线程的区别分别描述一下进程切换和线程切换的过程(这题挺考验面试者的深度的, 核心要答到虚拟内存和虚拟内存与物理内存的映射缓存失效这两点)为什么运营商要对udp包qos(这里面试官好像也觉得这个问题有点无聊,我的想法是可能两个原因,一个是为了防止ddos,一个是为了在网络拥堵的情况下优先保证tcp包的正常. 一年后的现在我理解了原因是运营商对 TCP 和 UDP 其实都想 QOS, 只是对 TCP 进行 QOS, 会触发 TCP 的重传机制, 导致更加严重的网络堵塞问题, 所以只能对 UDP 进行 QOS 而已.描述一下数据库的三大范式说一下反范式的场景redis的set数据结构怎么实现的redis的数据保存方式(rdb和aof),分别具体描述一下这两种方式以及他们的区别redis如何实现分布式锁的如果我的物理内存是1g,那么我可以申请2g的内存吗(可以,虚拟内存),那么虚拟内存是什么?time wait过多是什么情况?怎么解决close wait过多是什么情况?怎么解决描述一下三次握手和四次挥手说一下长连接和短连接(keep alive索引为什么用b + tree不用b tree?为什么不用红黑树(太高了. 导致 IO 次数过多, 所以红黑树不适合存储介质为磁盘的场景, 比较适合在内存里面操作数据)?同步与异步,阻塞与非阻塞,这两组概念有什么区别?epoll和select的区别负载均衡的策略(我答按照ip哈希,权重法之类的,他说那都是负载均衡的算法,不是策略什么场景下tcp会回rst包,(我回答gfw,防火墙,或者对方端口根本不通502和504的区别云计算常见的技术组合你在云计算部门,你认为云计算是什么数据库常见的几种事务级别描述一下缓存穿透的触发场景,要怎么避免缓存穿透(我答限频描述一下缓存击穿的触发场景,要怎么避免缓存击穿描述一下缓存雪崩的触发场景,要怎么避免缓存雪崩(我答限频你是怎么排查线上问题的,描述一下数据库索引里面存储的是什么说说tcp拥塞控制,我答慢启动,拥塞避免,快速恢复,快速重传,然后叫我分别解释一下这四个,然后问我拥塞避免用的什么方案,我觉得这个问题有点迷,就回答滑动窗口,然后他就下一题了描述一下zset的数据结构,解释一下跳表列举出工作中遇到的比较难的问题, 怎么解决的数据库有什么优化的技巧session 和 cookie 的区别