美团实习二面
曾经沧海难为水,除却巫山不是云。
面试时间:3.24
距离第一次大厂面试2.25已经过去一个月了,从刚开始的紧张不已到现在的淡定自若(可能是有了保底),感慨万千,一言以蔽之,
面试官自我介绍
那咱们开始。好,我这边先自我介绍一下,我这边是美团平台供给分销组。我们这边应该一名面试官也跟你简单介绍过,我这边再简单补充点。对,我们这边主要是做本地生活领域的私域分销相关的事情。这个的话具体产品形态就是我们这边也做了一些小程序,就是说我们做了那个汇城小程序,这是个微信小程序。在里面的话我们可以去引导用户去做分享带货,然后赚佣金。然后业务目标的话也是提升我们美团到家和到店的交易额,这个为宗旨去干一些事情。所以说对应到我们的负责的系统我们是从供给商品到交易,然后再到佣金会员这一套私域分销相关的技术服务都是涵盖的。对,部门情况这边主要是这样,这边可以自我介绍一下。
(base在北京总部,是团子的核心部门,有点心动了~)
候选人自我介绍
项目穿插八股
面试官首先问我对第二个项目还熟悉不,我如实回答,年前做的,第一个项目更熟,结果真的就稳了第一个项目
-
性能调优600qps优化到2000qps怎么做的
-
数据库连接池怎么配置的?或者是说我们有没有什么方式去探查我们的极限是2000QPS,还是还能再往上提?
这里回答的不好,只说了配置最大连接数,最小连接数,对这个数据库连接池掌握还不够
-
线程池的话,我们有了解有哪些参数吗?
7个核心参数,20多天没有背八股了,有两个参数忘了,后续面试官评价的时候也提到了QAQ
-
java SDK中它包了哪几种线程池,这个了解吗?
-
如果是thread的话,它的run方法和start方法有什么区别吗?
不会
特性 run()
start()
线程 在当前线程执行 启动新线程异步执行 调用次数 可多次调用 只能调用一次(否则抛 IllegalThreadStateException
)并发性 同步执行(阻塞调用者) 异步执行(不阻塞调用者) 底层操作 普通方法调用 涉及操作系统线程创建和调度 -
我们还回到项目当中,这里面提到一个模块化和异步化的设计思路,这个具体指的是什么?
-
我不好意思打断一下,咱模块化的好处是什么呢?分了几个模块?
上一个问题讲的太细了,讲了比较久,但是怕不讲的细致一点,面试官get不到233333
-
异步化里的线程池的配置是什么?
(团子是真的喜欢问线程池啊~)
-
通过数据分治,有序性、高精度分支和有序性,这个是在我们项目中怎么体现的?
-
redis的分布式锁是怎么实现的?
-
那过期策略是用的什么?或者redis支持哪些这种过期策略?
-
redis支持几种数据结构?
-
了解什么是redis的击穿和雪崩?
-
咱们项目中有用到mysql吗?(可想而知接下来就是一道sql题了)
sql
比较easy,大概是这样求出student表里面女生的数学成绩前十名的学生
1 | select name, score from student |
但是面试官又说了,这样永远只能返回前10条数据,比如针对第十条数据出现了并列的情况,比如第十条记录是90分,第11条记录也是90分,这样第11条记录也是第十名,岂不是遗漏了
当时get到这个点,就说了思路,子查询
1 | select name, score from student |
算法
K 个一组翻转链表 hard
丝滑AC,第一次算法题一遍过,写了很多遍了
反问
-
评价
- 对基础知识有一定的掌握,但是要更细化的深挖,有些基础要搞清楚,比如线程池参数怎么配置合理?
- 项目这一块做的不错,继续保持,可以更和业务相结合,比如秒杀、电商这种场景
-
有几轮技术面试(明知故问)
两轮
-
base哪里
自我评价
八股好久没背了,有些地方还是有所欠缺,比如项目里的线程池,数据库连接池,线程池这一块真的要好好的学习(背诵)一下了
感觉是稳的,等一手hr面2333333