小红书-引擎架构- java实习-一&二面凉经

五面小红书全挂了嘻嘻😁

一面:

1.自我介绍

算法:反转单链表,递归写法怎么写,acm格式

2.解释下线程和进程的区别

3.static 和 const这两个的含义

4.java的垃圾回收机制

5.反问 感觉像KPI 就没问什么

二面:

1.自我介绍

2.就比如说是个交易系统,比如说我要给谁转账,你不能说失败了,就是我转给他钱,这个事是不能失败的,对吧?嗯,对的,即使失败了也要有这个兜底保障机制的,就我要能够保障这笔操作必然能成功。嗯,那这种我们是可能是什么样一种解决方案?

3.那你比如说现在你第一个任务失败了,第二个任务还失败了,你怎么知道他失败了两次?你怎么知道要重试两次。(说了增加计数器)

4.那我再延伸一下,你这里任务每次执行的参数都不一样,你这些参数放到哪里呢(说了抽象出上下文字段)

5.解答我的问题:这里其实你的想法还是维护一个任务失败的记录表,但是比如说我们扫表的过程中数据库压力满了,不是单单的任务的问题,这个时候你的兜底机制再去扫表,其实又是给他增加了一个性能的损耗,这种情况其实更适合,把一些失败的任务当作一个消息放到消息队列中,去消费这些失败的消息,这种做个解耦我觉得更好一点

6.聊一下这个excel导出的需求

7.你是怎么去发现这个内存溢出的问题的,怎么去定位到对应的代码中?

(这种排查相关的问题核心就是:问题发现-定位-解决)

发现的背景balabal -- 通过MAT去分析dump文件,发现XSSFWorkBook占用了大量内存,然后定位到代码中,发现POI用到了这个WorkBook去把所有的文件全部加载到了内存中,所以数据量大的情况下产生了OOM -- 解决:分批加载、同步转异步balabala

8.cpu飙高的这种问题你觉得可以怎么排查

(这种排查相关的问题核心就是:问题发现(背景)-定位-解决)

(1)定位高CPU占用进程:top命令找到对应的进程ID

(2)根据进程ID找到导致CPU飙高的线程:top -Hp <PID>

(3)将线程ID转化为16进制:printf "%x\n" <TID>

(4)获取线程堆栈信息:jstack <PID> | grep -A 10 <TID> (其实就是找到进程-线程堆栈信息,打印对应的前10行信息)

(5)根因分析(分析堆栈信息)(比如死循环、大量线程上下文切换、死锁、大量FullGC)

(6)代码优化

(7)方案验证

差不多是按照这样答的,但是面试官觉得jstack看不到具体的信息,说可以用火焰图和Arthas去看9.那可以怎么定位到代码中呢,其实可以用火焰图

火焰图可以定位到问题方法

10.阿里开源的阿尔萨斯知道吗

Arthas就高级了,可以debug去打断点,可以看到具体执行逻辑中数据的流动

11.说一个实习过程中对你来说最有技术成长的case

12.怎么去排查fullgc、yunggc的问题,怎么去避免fullgc的问题

如何排查频繁FullGC的问题:

(1)分析/监控GC日志:可以手动看日志,也可以通过一些可视化工具如GCViewer来监控GC情况

(2)JVM参数优化:在分析完日志后,可以适当修改堆内存大小,然后继续监控GC情况

(3)分析dump文件:如果参数优化完成后还是会有问题,说明是代码里面的问题,那这里跟OOM排查就基本上一样了,去分析dump文件看是代码哪里的问题,然后去解决

不一样的点在于,这里要多次dump做对比,最好在GC前跟GC后都做对比,因为如果你在GC后去分析dump,有的大对象已经被回收掉,可能就排查不到问题所在

避免fullgc的问题:

增加堆内存大小、优化对象创建、使用合适的垃圾回收器、对象生命周期管理、监控分析、定时检查内存泄漏

算法:子集

反问:大概介绍了十几分钟的业务情况(以为稳了,热情是你的谎言~ 一周后排序挂)

#面试问题记录#
面筋(烤面筋) 文章被收录于专栏

烤面筋~烤面筋~三元一串,五元两串

全部评论
兄弟们可以给我送点🌹🌹 不 让我做什么都行
1 回复 分享
发布于 08-15 18:27 山东
java有const吗。。
1 回复 分享
发布于 08-15 21:37 广东
uu第二个说的是MySQL持久化重试吗
点赞 回复 分享
发布于 今天 09:28 广东
这么猛都挂了?好多我感觉我学了这么久都没听过
点赞 回复 分享
发布于 今天 07:57 北京
没事替你体验了一下,打杂的,跑路了
点赞 回复 分享
发布于 昨天 19:23 北京
为啥问这么多jvm的
点赞 回复 分享
发布于 昨天 15:15 江苏
接好运
点赞 回复 分享
发布于 08-15 19:26 上海

相关推荐

08-15 18:01
已编辑
美团_后端(实习员工)
bg学院本末9硕,6月18日在小红书上看到白袜哥宣传后私信,加入学习,当时项目有做黑马点评和外卖,算法刷了hot100,看了一些小林coding的八股,只是面试全挂了。但基础还行,只缺项目和补一下八股,所以学到7月初开始投,7月9日第一次面试美团,到8月1日前还面过快手、京东、字节、滴滴,但全都挂在了一面,答的很好也挂了。小红书本来hr都要约面了,又说有人已经接offer了所以流程中止,丢失面试机会。挫败感还是比较大的,都有点怀疑人生了,白袜哥跟我说是现在hc少,让再沉淀沉淀,但还是觉得很抑郁,明明都准备好了就是没过一面,找白袜哥聊,跟我讲了很多,现在印象比较深的就是他说暑期有合工大硕0实习一面放水,二面被拷打的完全答不出还是过,三面直接聊天躺赢进字节的故事,但还是觉得意难平,主要是在身边发生,一下有点接受不了。二战转折点在下午,面美团感觉相当好,问的所有问题都答出来了,但又有点担心跟之前一样面的好也挂,但这次并没有,面完半小时hr就打来了电话,问我什么可以到岗,有没有其他流程,如果给了offer会不会去,转折来的太突然让我反复怀疑真的面过了吗,即使白袜哥说这就是oc我还是持保留态度,只是把加了hr微信后的聊天记录发他确保沟通不踩雷,然后每隔一段时间刷新下状态翘首以盼。8月3日还出现了插曲,官网显示面试不通过,差点又道心破碎了,问白袜哥是什么情况,他的答复是美团校招官网经常出奇奇怪怪的bug,比如他暑期教的一个双9面美团时拿到的是那个人三年前本科投美团暑期的简历,但我还是怕变成一场空,就按他的意思去问hr,得到的回应是并没有挂,8月1日就已经推进了流程,只是要过周末,于是在忐忑不安中度过了周末。周一上午美团offer终于来了,悬着的心也是彻底放下。整个过程不是很长,但确实很提心吊胆,最后的offer也是一波三折,开始以为又会跟之前一样寄掉,知道要拿offer了开始高兴,看到官网面试未通过的崩溃,最后终于收到offer的释怀还是感谢下白袜哥在回答疑问之余还耐心的听我发牢骚,咏袜@黑皮白袜臭脚体育生8.15更新&nbsp;补聊天记录
学一下吧现在太菜了:刚面完美团,2道dp一道图论,都有原题,八股也是问一些简单的。面完一面就过了,完事之后美团领导就给发了offer,还给了一个头盔一套制服,不过领导说了,这年头电动车要自己买。
点赞 评论 收藏
分享
评论
7
54
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务