美团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出来,心里都凉了半截,感觉一面要挂了,心态有点不好),但顺便也给我提醒二面难度会更高一点,八股这部分背的再熟,二面面试官可能就会直接跳过问下一个问题,这部分优势会弱掉,可能会深挖我的项目和一些场景题,建议我这几天加强一下准备,因为面试官问我的时候有一些概念我都没听过。

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

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

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

#Java##暑期##美团#
全部评论
这个感觉是真好,像老师一样
点赞 回复 分享
发布于 04-17 06:58 美国

相关推荐

1. Lynx 为什么可以提高 fcp 率,其原理是什么2. Lynx 既然可以使用首屏默认数据,那么你知道在整个流程中,首屏数据从哪里来呢,整个的流程是什么3.  当首屏依赖后端返回的数据时,Lynx 是怎么进行处理的呢,如果是静态数据,应该做不到千人千面吧4.  当用户从首页进入 Lynx 页面时,如果需要实时获取用户的某个数据,却又不去请求接口,你觉得应该有哪些方案呢5. Lynx 的性能指标是怎么进行统计的呢6.  对于端上的性能统计,其具体统计方式与 h5 其实是不同的对吧,你能具体讲一讲吗7. Lynx 对于你们项目的收益是什么呢,你们通过什么指标来统计具体的收益的8.  能讲讲 purgecss 吗,其原理是什么9.  你用 purgecss 解决了哪些场景的问题,可以分别展开说说吗10. darkReader 的作用时机发生在哪个阶段呢,是怎么去收集 class 类名并进行实时监听呢11.  你是怎么优化 darkReader 的注入时机的呢,页面为什么会闪现亮色模式呢,可以详细说说吗12.  说说客户端缓存吧,Nsr 是怎么做的呢13.  当我在一个列表页持续滑动的时候,会对每一个列表的详情页做 Nsr 吗,还是会做一定的限制,限制方法是什么,如果对每一个列表页的详情做 Nsr,资源请求损耗肯定会异常大14. FCP 率的具体含义说一说呢,是怎么统计 FCP 的呢,FCP 的统计时机是在哪一个阶段呢。FMP 呢,FMP 没有现成的 API 进行统计吧,可以讲一讲最大有意义元素算法的具体流程吗15. JSB 通信的方式有哪些呢,讲一讲其具体原理呢,URL 式 与注入式有什么不同呢,优劣处可以分别讲一讲吗16.  讲一讲 H-Lynx 吧,你是怎么做的呢17.  为什么要使用 ts-morph 呢,你觉得 ts-morph 与 babel 的优劣是什么呢18.  除了分析抽象语法树,还有什么方法来做代码的迁移呢19.  你觉得在百度和字节的实习,给你的最大的区别是什么呢20.  能说说在你做业务的过程中,有遇到什么难点吗,是怎么进行攻克的呢21.  针对与 h5,你们是怎么做性能优化的呢八股22.  为什么 hook 不能在 if 语句中使用23.  能讲讲 useState 的原理吗24.  说说 Webpack 的构建流程吧25. Tcp 为什么防止数据丢失,做了哪些具体的操作呢——超时重传,快速重传26.  说说事件循环吧,并看代码输出题27.  为什么宏任务要优先于微任务执行呢28.  说说多线程安全的内容吧29.  进程之间通信的方式是是什么30.  主键与外键的区别是什么算法 31. K个一组反转链表#前端# #美团# #秋招# #提前批# #字节#
点赞 评论 收藏
分享
评论
8
53
分享

创作者周榜

更多
牛客网
牛客企业服务