淘米服务端一面
时长: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、数据池性能从哪方面考虑,如何设计?