分享来自两位同学的面试综合,他们分别拿到了菜鸟、嘀嘀、盒马的多个offer,由于面试的时间跨度时间太长,且面试的部门太多,只能回忆到具体的面试题,无法再具体区分出几面了,但是面试真题还是可以拿出来分享一下,且看正文。

菜鸟&滴滴

这些来自第一位同学分享的面试题,由于过于优秀,同时面试几个大厂都已拿到offer,他只能回忆到一些重点的问题。

JVM内存溢出排查?

根据他的描述,JVM内存溢出的排查是个必问点,基本上每个公司都被问到,要知道怎么利用jstat、jmap这些命令结合MAT等工具导出堆栈信息查看分析,如果没有实战的经验,最好平时可以自己模拟一下场景,看看具体怎么处理。

网络编程相关的提问

因为大家Java可能做业务相关的需求比较多,如果不是涉及到比如IOT这种和网络编程相关的话,确实不是很清楚,对于这块问题他直接回复不清楚,问题也不大。

并发包相关问题

JUC下的那些常见问题,ConcurrentHashMap、CountDownLatch等等这些都应该要熟悉掌握,面试必考点。

线程池原理

基本也是必问点,也比较简单。

mysql索引,锁机制,隔离级别

同上,这个也是比较基础,必须掌握的点。

Redis连环炮

Redis连环炮,数据类型、缓存击穿、雪崩、穿透、热key、大key,哨兵、集群,同步机制都应该了然于心。

有一个比较少见的问题,tomcat起两个war包,怎么识别哪个请求要给到哪个进程?

这个问题同学没有回答上。(欢迎你留言给出想法哦)

Linux的命令,比如怎么查看给文件按大小排序,主要是查看日志相关的技巧命令

这个在上一篇的快手的面试也有,Linux相关的基本上就是这些了,对于日志的查询这块grep、tail等等这些要用的熟练。

volatie内存屏障具体是怎么实现?

关于JMM内存模型相关的知识点,必须要掌握。

JVM启动参数有哪些,怎么调优,TLAB是什么,阻塞队列对比和选择

JVM调优,根据实际场景举例,阻塞队列的问题上一个同学也碰到了,都是基础知识,应该掌握,TLAB这个稍微有点不常见。

DDD的理解?

对于阿里来说,很负责任的告诉你,基本上DDD是必问,但是这个基本上只要你有一定的自己的理解就可以了。

Reactor模型

这个问题,至少我在美团、饿了么、阿里多个面试中碰到过,基本也属于必问的问题。

第一个总结

第一位同学的面试题记忆深刻的就这些了,虽然不多,但是基本上也都覆盖到了高频出现的问题,参考价值还是挺大的。总的来说,DDD、Reactor模型可能大部分同学都不是很清楚,可以专门准备一下。

蚂蚁金服

CHM结构,线程安全保证,加锁实现细节

ConcurrentHashMap7和8的区别,实现原理这些常考点。

JVM内存结构,垃圾回收原理,GC配合策略,排查过程细节和调优方案

还是一样的问题,JVM、GC、垃圾收集器,调优的方案。

线程安全的本质?

要说到原子性、有序性、可见性的问题。

并发锁,AQS原理

都不是难点,频繁问。

ThreadLocal源码

多次出现的问题,一定要看书。