美团4.7一面总结
美团一面
总时长1小时7分钟, 分为四块.
第一块: 自我介绍+简历+项目;
第二块: 基础知识(计算机网络, JVM, 锁, volatile, Redis, MySQL);
第三块: 算法;
第四块: 我的问题;
自我介绍;
项目都是在实习做的吗,介绍一下项目和项目解决的问题;(介绍了一下线上书城项目)
你的责任是什么(主要是后台的后端部分+前台的一些新技术点);
自己有遇到过项目中的难点吗(分布式session问题: cookies-> 一致性hash处理-> redis处理, 还有一些业务逻辑刚开始接触的时候麻烦点,熟悉一下就好了);
Solr搜索应用是你在做吗,有了解基本原理吗(讲了一下基本原理,建立倒排索引);
Solr的词频排序算法介绍一下(回答了不了解,害!! 好气啊,我知道的, nlp基础课上有学过,倒插排序表,);
为什么用MyBatis?(内存数据库,速度快,然后对比了一下Mysql);
看你项目里用到了CAS单点登陆,能介绍一下吗(介绍了一下原理+过滤器,实际操作);
Zookeeper+Dubbo,能介绍一下两者的关系吗(讲了一下RPC原理, 负载均衡);
那你在介绍一下负载均衡吧;(4种负载均衡,一致性hash的优点)
MySQL索引的数据结构了解吗?(讲了一下B+,为什么不用hash和红黑树)
MySQL聚簇索引和非聚簇索引的区别(这块没看,直接说不知道了,后面了解: 聚簇索引的叶子节点就是数据节点,插入速度慢,适合排序,因为本身已经按照物理位置放置的,排序快)
如果一条查询过慢,哪些原因,优化(1. 是否走了索引,2.查询语句是否用了not 或者模糊查询, 索引应该建在where中频繁查询,而非频繁修改.)
如果where a=1 or a=2, 怎么建立索引(建立a,b的联合索引, 这样子查询的时候先查a, 在查b就比较快了...)
平时怎么学习呢 (学校的课程有很多资料+ csdn技术文章+ 自己做项目+总结性输出)
项目了解了,接下来我问一下基础知识把.
https和http的区别(多了个SSL层,用于校验和交换密码, 资源, 端口)
volatile关键字的作用(可见性和禁止重排)
synchronized和reentrenLock的区别(介绍了一下synchronized 和lock的区别,lock是接口,扩展了锁的操作,包括可中断, try lock避免死锁, 可公平锁, 手动加锁解锁)
synchronized是可重入锁吗(是的, 讲了一下在对象头计数+1)
JVM类加载的过程 ,有哪几种加载器( bootStrap引导类加载器,extension扩展类和application引用类加载器, 自定义加载, 介绍了一下双亲委派机制 沙漏机制)
还有一些其他问题记不清了....
- 接下来,做两道算法题吧
- 第一道: 不使用类库API的前提下,给定两个字符串,求串2在串1中的位置,没有返回-1. 是一道KMP字符串匹配, 写了一个m*n复杂度的,然后优化了一下, 害,紧张了,忘了KMP算法了(空间换时间,从模式字符串后往前遍历,然后记录每个字符移动的数量,)
- 第二道: 输入一个的数组,假设元素不重复,输出这个数组的全部排列组合. 一个递归算法, 大致写出来了,然后说了一下思路.
我的问题:
整个面试过程中,我有哪些有待改进的地方, 美团现在用的有哪些技术栈
答: 你的整体技术栈还是蛮匹配的,包括redis, mysql, 然后我们还有kafaka队列,大部分的框架都是我们基于这些框架优化再封装的. 相对来说,广度和深度方面,深度方面有待加深, 然后网络和数据库这块要加深 (网络只问了一题好像就没了,可能SSL层没有详细介绍吧? )
我进入下一轮的机会大么
答: 这个我们是要等所有的候选人面完的再统一决定的. 正常7个工作日内会给答复.
如果有机会实习,具体的实习时间方便问一下?
答: 这个在后面二面的时候可以问一下, 你愿不愿意来北京实习呢(因为我写的期望地址是上海, 愿意的)
总体总结:
整体下来问的问题挺广的,包括了项目,算法和基础知识,涉及到的面很多, 面试老哥人很好,希望有机会进入二面吧,不要打脸啊.......
文远知行公司福利 558人发布