您的位置:首页 > 其它

二战小米、贝壳,三战美团,项目都是次要,算法和调优才最重要

2020-09-28 21:28 417 查看

美团三轮技术面 + 一轮hr面 全部安排在了一天,应该是准备一天面试完所有人


每场面试10-30分钟就会有小哥哥或者小姐姐打电话通知结果和下一场面试时间,效率Max


估计这篇面经能帮帮秋招的朋友(只能记起这么多)


笔试


时间:9.18 可以做两个小时,就三道编程,没选择


笔试题目是在一定场景下的,但是核心意思就是下面的几个,题目背景记不大清了。


1. 无向图检测是否有环


2. 根据给出依赖关系,判断是否存在循环依赖


3. 完全背包求方案数


一面


时间:11:10 时长大约30分钟


问题基本都是递进的,老师还一直告诉我不要紧张


1. 是否能接受北京工作


2. 自我介绍


3. 线程和进程的区别


4. 进程间通信方式


5. 信号量通信是如何实现的


6. 网络套接字和本地套接字区别


7. 数据库有了解吗


8. 数据库索引数据结构


9. 为什么不能是Hash结构(我上个问题少答了Hash索引,直接说的B+树)


10. TCP和UDP有什么区别


11. TCP如何实现流量控制


12. TCP是否真的存在 “粘包”


13. UDP存在 “粘包” 吗


14. 如果一台主机之前曾经和我们服务器建立了TCP连接,下一次来了个新的主机建立连接,如果之前的主机又错误的发送了TCP数据包,我们如何判断它来自新的服务器而不是之前的服务器


15. 如果TCP发送方和接收方性能无限,那滑动窗口取决于什么


16. 如果TCP发送方和接收方性能无限,那么我们能通过TCP连接测试出宽带带宽吗


17. HashMap底层数据结构


18. HashMap链表转换红黑树,红黑树每个节点如何确定位置


19. 刚才提到CAS自旋锁,悲观锁和乐观锁有什么区别


20. 乐观有哪些实现方式?


21. 还有什么要问我的吗


(最后说,感谢参加这次面试,看其他人的面经还以为直接凉了)



二面


时间:16:00 时长大约30分钟


1. 自我介绍


2. 介绍一下项目A( https://github.com/qrpcode/wordgo)


3. 为什么多线程使用StringBuilder而不采用StringBuffer


4. 为什么认为加锁会更加节约时间(仅针对项目情况)


5. 如果用户生成文件过大怎么办,内存消耗是否考虑


6. 如何最后校验文件是否正确


7. 介绍一下项目B( https://github.com/qrpcode/daypaper)


8. 项目中遇到的最大的困难是什么


9. 刚才有提到SSL证书,是否了解HTTPS和HTTP区别


10. 还有什么其他的困难印象深刻吗


11. 刚才有提到Dubbo,那你是否了解dubbo的原理


12. 除了MySql还了解什么数据库

13. 项目中redis使用场景 14. redis底层结构了解吗


15. 如果我们有一个日志文件希望统计每个URL访问频率该怎么做(HashMap计数)


16. 我们只能一个一个数吗,有没有其他的办法(HyperLogLog算法 )


17. 还有什么要问我的吗



三面


时间:16:45 时长 大约30分钟


1. 网络协议了解吗


2. 操作系统了解吗


3. 管道有哪些种类


4. TCP和UDP了解吗


5. 还了解什么传输协议


6. socket编程了解吗


7. 还有什么要问我的吗


(似乎还有一些问题,确实记不起来了...)



Hr面


时间:17:20 时长 大约 15分钟


Hr是一个很温柔的小姐姐,告诉我不用紧张



1. 为什么做项目B


2. 项目B的一些运营情况


3. 为什么做项目A


4. 如何推广项目A


5. 遇到压力会怎么办,如何解决


6. 什么时候能够来实习


7. 是否有其他家已经获得offer


8. 还有什么要问我的吗


总结~


面试体验很好,而且每一场出结果是真的快,不用拉长线真的是强太多~


因为比较多,后边就不多说了,直接给大家上题

小米二面


笔试全A,个人感觉题目偏简单,半小时全部做完了



一面: 30min


问的比较基础,而且很快


讲项目


synchronize怎么用,底层实现?试写一小段代码
reentranlock的区别?底层知道吗?


设计模式,手撕单例


用了volatile是为什么?


乐观锁,可重入锁?


collection分类,以及介绍


数据库事务


还有一些题目有点忘了


手撕算法


有一个链表,指定链表位置i和j,将i到j之间的节点reverse。我觉得难度不是很大,但是我的做法需要考虑一下细节,比如加个头节点。



反问表现,面试官说还不错



二面:1h 间隔3天


一个很甜的小姐姐


讲项目


HashMap以及底层,怎么扩容?散列因子知道吗?


散列表如何存放?


equals和==
comparable知道吗?


算法: 给定L和R,在BST中找到所有[L,R]的加和


线程池(7大特性,4大静态方法)


除了单例模式还知道啥?回答工厂,手撕一下?


还有一些忘了,也比较基础



隔了两天就收到offer了,太开心了

贝壳:



一面(40min)、二面(25min)

1、自我介绍


2、了解的数据结构


3、redis的数据结构


4、redis的sds


5、zset的跳表结构


6、创建线程的方法


7、start和run方法的区别


8、常用的线程池


9、线程池中的阻塞队列


10、最大最小堆


11、线程池参数和拒绝策略


12、线程池中核心线程数的数量怎么选择


13、AQS


14、公平锁和非公平锁


15、锁升级过程


16、nio和bio


17、一致性hash算法


18、分布式锁的实现


19、kafka的组成部分


20、类加载机制


21、数据库有哪些,区别是什么,应用场景


22、mvcc


23、间隙锁


24、sql语句的优化


25、cms和g1的区别


26、zgc:好像是新出的gc机制


算法题#


1、手写单例模式


2、数组中找到和为100的下标


3、手写消费者,生产者



hr面,常规问题,就不贴了


贝壳的面试体验非常好,而且流程快,个人还是很like的

其实不论面试的是哪家公司都会问到那么几个相关问题,像是算法啊、项目啊、线程啊、TCP等等,我不知道你们都是怎么复习的,反正我是几本书就搞定了(哈哈),开玩笑的,但是我看的这几本书可以推荐给大家:

算法方便,可以看左神的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,看下目录




项目可以看看《Javaweb项目开发案例精粹》包含20个项目的详细开发,还有对应的视频,应对面试足够了,看目录


线程和并发可以看一看《Java线程与并发编程实践》,系统且详细的介绍了多线程与高并发,看目录


TCP/IP方面可以看看《TCP/IP协议族(第4版)》,一本书搞定网络问题,上目录









目录太长了,我不想截了,反正30多章,讲的详细的不行,有需要获取完整版用来学习的,添加助理va:yunduoa2019来获取!!

TCP/IP/网络IO学习视频

TCP/IP网络协议

网络IO

还有课件分享

IO课件



其他面试资料有这些也差不多够了,你要没有我倒是也能免费分享给你,一起进步嘛~


这上面这些资料都可以免费分享给大家,需要完整版的朋友,可以转发此文关注小编,添加助理va:yunduoa2019来获取!!!!


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: