快手笔试两个星期之后接到面试通知,18年5月2号上网10:30来五道口参加面试。
一面:
1、手写扑克牌洗牌操作。主要就是用随机数打乱顺序。我写的是new一个数组,随机放入原数组中的数据(牌),忘记了生成随机数会重复的问题,改为先生成随机数数组再操作。面试官建议采用交换的方法;
2、看简历,问项目。问了springMVC的架构,项目具体实现流程。问到注解的时候没能答出来注解是个什么机制;
3、问了ArrayList,HashMap,HashTable的有关问题;
4、问了JVM的一些问题;
5、让讲了一下现在的研究内容。
二面:
一面之后接着二面,面试官是个leader。二面答得不好。
1、手写实现一个字符串转数;
2、问了TCP协议的一些问题,讲POST,GET,为什么TCP比UDP可靠,问了HTTP的request,response;
3、说一下CPU是怎样从内存中获取数据的,CPU怎样处理进程的,硬盘的寻道,读一个扇区的大概时间;
4、讲了一下项目,介绍rdesktop,问了mybaits,还有Hadoop和HDFS;
5、手写LRU,说一下其他的缓存失效策略;
6、问了线程安全问题;
6、手写设计模式。