美文网首页大数据
二战小米、贝壳,三战美团,项目都是次要,算法和调优才最重要

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

作者: 用嘴写代码 | 来源:发表于2020-09-28 21:19 被阅读0次

    美团三轮技术面 + 一轮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多章,讲的详细的不行,有需要获取完整版用来学习的,私信小编【学习】或【资料】来获取!!

    TCP/IP/网络IO学习视频

    TCP/IP网络协议

    网络IO

    还有课件分享

    IO课件

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

    这上面这些资料都可以免费分享给大家,需要完整版的朋友,可以转发此文关注小编,私信小编【学习】或【资料】来获取!!

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/ksmjuktx.html