把最近几场面试的面经汇总一下

自从收到头条意向书后,每天划水,没有啥动力,半个多月没看复习笔记和刷题了。七月份投的几个提前批,差不多八月底才陆续开始进入面试流程。

有几个坑可以给大家排一下。第一个就是如果春招实习的时候没准备好,千万不要投大厂,特别是阿里,很看重最近半年的面试记录,我就是因为春招那会儿准备得不充分,支付宝二面挂了,今年找朋友内推的时候,面完二面,主管看到我的实习挂面记录不太满意,就直接放备胎池,两天后就收到了拒信;第二个就是视频面写代码的时候,如果题目对你来说很简单,不要一分钟就写完了或者一开始就给最优解,毕竟人家面试官也是挑了半天才选的题,你这么快就完事了,面试官会想你是不是做过这题,或者他出的题有这么 low 么。。。可以先思考一下,先暴力再优化,让面试官看到你思考的过程,会比你一分钟甚至题都没读完就开始写的效果要好得多,这样面试通过率会比较高。当然像快排、二叉树遍历的问题,那就别再思考了。。。

下面是最近一个月的面试面经汇总:

阿里菜鸟

一面(100分钟)

  1. 秒杀平台怎样预减库存,MQ 有什么作用
  2. 怎样防止超卖现象
  3. MQ 实现了异步但订单仍然有可能出现超卖,怎么解决
  4. Redis 集群的哨兵***过程,越详细越好
  5. Redis 的槽分配,如果一个集群节点挂了怎样重新分配对应的槽
  6. Redis 集群的哈希算法和渐进式 rehash 的过程
  7. Redis 主从架构,如何保持数据一致性
  8. Resdis 节点间如何通信,用了什么协议,具体流程
  9. 敏感词过滤算法的过程
  10. 发生 FULL GC 的条件
  11. CMS 垃圾收集器的特性,工作的四个流程,哪几个流程 stop the world
  12. 项目中关于 FULL GC 调优的细节
  13. 如何解决缓存雪崩和缓存击穿
  14. MySQL 中的索引为什么用 B+ Tree 而不用 B Tree

二面(50分钟)

  1. 秒杀平台的优化,如何实现更高并发量、高可用性
  2. SpringMVC 的请求过程,客户端的查询请求到渲染页面返回给用户的流程
  3. 线程安全的本质是什么?如何解决可见性的问题?可以想出哪几种方法?
  4. AOP 的原生 API 有没有了解
  5. 你所了解的所有安全性问题以及解决思路
  6. MySQL 中如何强制走指定的索引
  7. JVM 的内存结构,哪些是线程私有,哪些是线程公有

腾讯微信事业部

  1. Redis 的容灾,单机和分布式环境分别说一下
  2. Redis 的两种持久化,各自的优缺点
  3. Redis 的 IO 多路复用模型
  4. 动态编译和静态编译的区别
  5. STL 的底层数据结构(用 Java 的容器回答的)
  6. TCP 的四次挥手,为什么会有 TIME_WAIT 和 CLOSE_WAIT
  7. TCP 的流量控制和拥塞控制
  8. 用户从客户端输入请求到服务端接受请求,到数据库的访问,再到服务端返回应答、渲染页面的整个过程,描述所有细节
  9. Linux 的几个常见的 IO 模型
  10. 怎样实现 UDP 的可靠传输,需要设计哪些数据结构或者有什么思路
  11. 堆排序的实现过程,怎样调整堆;快排有没有稳定性,为什么
  12. 项目的技术栈,看过哪些相关的书,平时学技术栈的方法和路线
  13. 编程题6个(给了40分钟,只写了4个题):
  • 将一个数字转任意进制(2-50进制)
  • 写一段代码判断当前环境的字节序
  • 实现单链表的有序插入,并思考如何在有序链表的基础上提高查找效率
  • 给定一个数组,求 max(A[i] & A[j]),时间复杂度不高于O()
  • 给定一个无序的大数组,如何找出中位数?如果有100亿个数,内存只有 4G 呢?
  • KMP 算法

感觉腾讯不怎么想招人,一面就面了快三个小时,枯了。

小米电商

一面(45分钟)

  1. HashMap 的扩容,JDK 1.7和 JDK 1.8 扩容的区别
  2. 有几种方法可以让 HashMap 变得线程安全
  3. ConcurrentHashMap 用到了 synchronized 么,说说 synchronized 的底层是怎么实现的
  4. volatile 的特点,保证原子性么
  5. JVM 的结构,垃圾收集算法
  6. 存储引擎,B+ Tree 的结构,最左匹配原则
  7. TCP 三次握手,标志位怎么设,TIME_WAIT 发生在哪儿
  8. 输入 URL 到前端渲染的过程
  9. AOP 动态***有哪几种实现方式,有什么区别
  10. 项目问题
  11. 代码题:返回二叉树中包含每层节点之和平均值的数组

二面(45分钟)

  1. 项目中 Redis 和 RabbitMQ 的作用是什么
  2. 如何解决超卖现象
  3. 数据库事务的特点,隔离性对应哪几种隔离级别
  4. MySQL 的默认隔离级别能否解决幻读的问题
  5. InnoDB 引擎的特点,支不支持事务
  6. MVCC 是什么,核心问题是什么,为什么会有 MVCC
  7. 代码题1:输出一个单向链表的入环节点,如果没有则输出 null(先通过快慢指针得到 fast 和 slow 相遇的节点,再令 fast 从相遇点出发,slow 从链表首节点出发,一次一步,相遇的节点为入环首节点。面试官要求用数学公式推导为什么要这么做)
  8. 代码题2:合并两棵二叉树,对于两棵树都存在的节点,节点值相加,否则空的位置用另一棵树的节点来代替
#校招##阿里巴巴##面经##Java工程师#
全部评论
代码题写纸上吗?说思路行不
点赞 回复 分享
发布于 2019-09-07 09:31
阿里真的太过分了 不给人成长的机会
点赞 回复 分享
发布于 2019-09-07 09:36
楼主你是有实习,实习项目是写的秒杀吗
点赞 回复 分享
发布于 2019-09-07 09:44
楼主问下redis集群这一块问题,你是自己部署过和遇到过吗?不然上哪去了解这些问题
点赞 回复 分享
发布于 2019-09-07 11:50
mark,感谢楼主辛苦整理!
点赞 回复 分享
发布于 2019-09-07 17:39
请问楼主都做过什么类型的项目呢??
点赞 回复 分享
发布于 2019-09-10 14:02
微信过了吗😃
点赞 回复 分享
发布于 2019-09-16 09:20

相关推荐

点赞 评论 收藏
分享
2 97 评论
分享
牛客网
牛客企业服务