一、笔试
5道选择、填空题(问到了树、计算机网络、操作系统等)
6道大题:
1.给你3L和5L的水桶(无刻度),怎么精准倒出4L的
2.36个人赛跑,一共6条赛道,最少比赛几次可以决出前三名
3.给你中序和后续遍历,让你重建二叉树,并写出其前序遍历
4. a.让写SQL查询语句,要求要能使用到建立的联合索引
b.写SQL查询语句,要求不能回表
5. 支付业务用到了http协议,发现使用时有很大的延迟(5S),测试时一般延迟在10ms左右,问是什么原因,如何解决。
6.有个业务使用了大量if else,导致容易出错,让你解决,给出UML图或者伪代码。(设计模式相关问题)
1道编程题
约瑟夫环改编问题:1~100编号的人围成环,报数,每第m个人退出,直到剩下的人不足m人为止,输出剩下人的编号。
二、一二轮面试
先是拿着初试的试卷问了一遍,问问之前没写出来的题现在会了吗。
一面:
Java相关
ArrayList和LinkedList
数据库
MySQL为什么要用B+数索引,MongoDB不就是B树索引吗?
回表,覆盖索引问题
计算机网络
三次握手、四次挥手;画出来各步骤并说明每一步的状态,为什么不能四次握手;
拥塞控制机制
滑动窗口机制,怎么设计一个滑动窗口机制(要考虑到超时重传)
一段网络(比如长沙到北京),怎么排查网络中出现的问题:使用路由跟踪命令traceroute
二面:
问项目,怎么处理项目,遇到哪些难题,怎么解决的,怎么和其他人沟通的,举个例子
怎么学习新的知识,渠道等
java基础知识,集合
二面不涉及太多技术,主要是聊其他的