淘米服务端一面时长:55分钟自我介绍1、线性结构和非线性结构区别?2、数组和链表区别?3、单链表,如何找到中间的节点?4、时间复杂度的概念,如何计算?5、知道哪些排序算法?快排的时间复杂度多少?6、选一个熟悉的排序算法进行实现。7、找出最大连续了数组,返回最大和,以及最大和对应的子数组。8、口述思路:单链表成环,如何判断环的长度?9、排好序的数组去除重复元素。10、get和post区别11、403状态码、502状态码、200状态码?12、tcp和udp区别?13、linux命令查看pid,查看某个进程网络连接情况?14、操作系统底层,代码编译到运行是如何执行的?15、操作系统中,一个程序的内存区域划分。16、b+树和b树区别?17、数据库慢查询如何定位,如何优化?18、索引失效场景。19、事务四个特性。20、浅拷贝和深拷贝。淘米二面时长:1小时1、手撕:字符串全排列2、手撕:数组只有0或1,最多改N个0为1,求最长连续1的长度3、redis响应慢怎么排查?4、根据4的回答反问,持久化开了另一个线程操作,主线程响应还是慢怎么排查,如何定位?5、再哈希,什么情况会发生,有什么用?6、什么情况下导致用户态和内核态切换?7、epoll原理,怎么实现的多路复用?8、epoll_wait组件数据结构?9、epoll_wait是否阻塞?10、epoll_wait为什么用红黑树不用hash?11、根据红黑树方便范围查询,那epoll什么情况下用到范围查询?12、操作系统中,本机发送好远端发送有什么区别?13、mybatis连接池,用过什么数据源,了解他们之间性能的差距吗?14、数据池性能从哪方面考虑,如何设计?