首页 > 美团Java暑期一面
头像
急行电牛
发布于 04-16 22:24 四川
+ 关注

美团Java暑期一面

面试流程

算法题+SQL题——>Java八股——>简历项目——>场景题——>个人情况——>反问

算法题+SQL题

算法题

大数加法,给两个字符串,返回两个字符串的和,并以字符串的形式返回,时间复杂度O(n)。

例如:"787"+"350"="1137" (787+350=1137)、"321"+""=321(321+0=321)

顺便问下有没有评论区能看懂我写的这三个数字字符串是什么意思呢?

一开始思路错了,没A出来,面试官提醒了一下按照人的逻辑计算,这才想起来进位,完成了大概80%吧,剩下一些边界比较难处理,写完太费时间了。于是和面试官讲了一下思路。

SQL题

从学生表和成绩表中,查询学生学号、姓名、平均成绩

用到了LEFT JOIN、AVG、GROUP BY

成功通过

由于写第一个算法题耗费了不少时间,到现在都快过去40min了

Java八股

1.说一下HashMap和ConcurrentHashMap的区别?

2.说一下创建线程有哪些方式?

3.刚才你提及了线程池,你觉得用线程池有什么好处?(我回答了线程池的七个参数、线程优点)

4.刚你提到了线程池的一些参数,核心线程数和最大线程数,它们各自的作用是什么呢?

5.什么时候请求才会被拒绝呢?会直接拒绝掉吗?还是放到什么里面?(我回答放到一个队列里面)那么队列满了怎么办呢?(这个不会了)

6.用过MySQL吗?说一下MySQL为什么要用B+树用作索引结构?(这个题没有太回答到点子上)

7.说一下TCP三次握手的过程吧

8.平时用过消息队列吗?(回答没有)

9.有了解过微服务吗?(回答没有)RPC这个概念有了解过吗?

10.对JVM了解吗?(我回答说了解一些垃圾回收相关的)OK那说一下垃圾回收,就说一下内存区域有哪些划分?

11.知道Full GC是什么意思吗?

12.JVM内存区域里面堆、栈、方法区的概念了解吗?

基础知识了解的差不多吧,聊一下项目吧,聊的是我简历上点评项目

简历项目

简历项目为1-13,中间穿插一个场景题

1.我看你有提到缓存的一些概念,说一下缓存穿透、缓存击穿、缓存雪崩这三个问题和什么情况下会触发?

2.前面有提到缓存穿透可以存一个空值,那么存一个空值会带来什么负面影响?

3.用什么方法可以避免缓存中存放长期没有用的数据?

4.利用分布式锁解决缓存击穿的问题,说一下具体场景、和怎么实现的?

5.我看你用分布式锁用的Redission,而不是用原生的Redis,Redission有什么优势和特点?(这个一点印象也没有)

6.说一下为什么用SortedSet来做点赞排行榜?有什么好处?SortedSet对你这种场景而言有没有其他的优势?了解原理吗?了解SortedSet底层用到了哪些比较核心的技术?

场景题目

1.围绕点赞的,当数据量很大时候,到百万级别,用SortedSet实现点赞排行榜有可能遇到什么问题,你能想到的?你可以考虑一下他是基于什么实现的,可能有什么问题,从这个角度去想?(回答内存空间不足,只展示一些粉丝数比较多的用户,减轻压力。面试官评论说我这种方案属于一种冷热分离,冷的数据放数据库,热的数据库放缓存)

下面依然是简历项目问题7-13

7.你知道GEO底层使用的是什么数据结构吗?(我回答错了,面试官说没事,我是直接用没有很了解底层的东西)

8.使用Redis生成全局唯一ID,因为Redis什么特性才选用它生成唯一ID?唯一ID是用来做什么呢?所以你并不是用递增的方式来生成ID的吧?生成唯一ID有听说过雪花算法吗?

9.乐观锁解决超卖问题是怎么实现的?(回答先判断库存,再进行扣减)

10.假如真的是一个秒杀的场景,瞬时的QPS比较高,除了乐观锁,还有其他限流或者降级的方案吗?就是保证用户体验。了解降级或者限流的概念吗?(回答不是很了解,这个题放我一马了)

11.你知道Redis的热点key问题吗?比如说某一个优惠券是一个很热门的,你是存在Redis里面吗?相应的数据。Redis存在单节点的问题,如何避免呢?了解过Redis的集群吗?分片呢?(回答都没了解过)

12.基于BitMap存储用户签到数据,为什么要用BitMap呢?(回答节约存储空间)

13.假如说有很多很多用户,导致这个存储最后还是数据膨胀了,这时候应该怎么解决,有什么思路?(回答分库分表)

个人情况

1.你平时是怎么学习的?

2.简历中的这些项目是你自己自发的一个项目?还是什么情况呢?

反问

1.针对于这次面试,给我一些建议

(面试官说了一下我的优点,写代码风格挺好:会注释,整个逻辑先盘清了再着手。基础知识很流畅,准备的很好,八股文这块很OK的,深度也挺好的。项目这块,是自发的项目,是有愿意学习愿意实践的一个动力,还是挺好的。

劣势是项目没有去真正的在线上跑,有些东西掌握的不够深入。后面尽量加强我项目的熟悉度,增加一些适当的扩展,通常面试官会根据我的项目做适当的延伸,答不出来也是正常的,他只是想知道大概学到了哪一步而已。)

2.这次面试结果多久通知

(应该是这周有结果,然后问了一下我志愿更倾向于哪个城市)

面试官说应该会给我过(鼠鼠当时第一道算法题没有完全A出来,心里都凉了半截,感觉一面要挂了,心态有点不好),但顺便也给我提醒二面难度会更高一点,八股这部分背的再熟,二面面试官可能就会直接跳过问下一个问题,这部分优势会弱掉,可能会深挖我的项目和一些场景题,建议我这几天加强一下准备,因为面试官问我的时候有一些概念我都没听过。

这次的遇到的面试官人太好了,给我了很多有用有价值的建议,希望我也能当上团孝子吧。

互相致谢,然后面试结束。

希望大家在评论区针对我的简历项目问题提出一些更好的答案,这方面我回答的确实一般般。

全部评论

(1) 回帖
加载中...
话题 回帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐