前言
三月份面经汇总(腾讯、蚂蚁、百度、携程)
二月份本来还在家快乐地打着王者荣耀。
然后某天晚上突然就被告知某同学阿里在面,字节三面过了开学就实习去了。
3月3号师兄说可以帮忙内推阿里和字节,然后让改了一次简历,周四改完周五上午刚发给师兄,被告知阿里提前批结束了,面试就要录入系统了。
腾讯一面(3月10号、一个半小时)
- 自我介绍,项目介绍,做的工作,问难点
- 讲了讲clickhouse的存储
- MySQL数据库
- MySQL的各种锁
- 事务+隔离级别+问题+实现
- 索引结构
- 存储引擎
- 线程和进程
- 进程和线程的区别
- Java线程安全问题
- Java中的锁分类
- 悲观锁synchronized的升级
- 乐观锁的问题
- 计算机网络
- 输入URL,整个过程
- HTTP和HTTPS
- 证书验证
- 中间人攻击
- 操作系统
- 内存
- 排查内存泄漏和内存溢出
- 做题
- 数相加
- 多线程打印
腾讯二面(3月16号、50分钟)
- 自我介绍,项目介绍
- 把项目中的难点和解决过程讲清楚,中间会提问
(和场景题差不多,要讲出来其他的优化方法,这里没答好) - MySQL
- Insert语句和delete语句执行过程,具体是怎么到磁盘的(这个题没答上来)
- 场景题
- 设计框架下多线程的场景
- 计算机网络
- HTTP长连接和TCP长连接
- SSL整个握手过程
- 写题
- 两个数组,分别表示两个数的二进制,求和
- 设计测试用例,从哪里考虑设计
腾讯HR面(3月20日、40分钟)
- 自我介绍
- 本科成绩和研究生成绩
- 具体问了哪一科成绩不好,解释这个学的不好的原因
- 讲个项目
- 怎么学习,讲实际例子
- 剩下的就是家庭环境等等,都是HR面经常见的问题
百度一面(3月28号、60分钟)
- 自我介绍,项目介绍,问具体做了的工作
- 多线程
- 线程的创建方式
- 线程工厂
- 线程池的核心参数,过程
- 四种线程池的问题
- Java中的锁
- 乐观锁的ABA解决,自旋的问题
- CAS的底层
- synchronized锁升级过程
- ReentrantLock的AQS
- JVM
- 1 发生minor GC的情况
- SpringBoot
- 自动配置的过程
- 写题
- 找出字符串中最长回文串
百度二面(3月28号、50分钟)
- 自我介绍,项目介绍
- quartz和cron表达式讲了一点
- 项目是单机部署的quartz定时任务系统,推了一个场景:假设我们现在部署到多机上,如何保证任务不会被多次执行
- 说了redis提供的分布式锁(setnx),原理
- 场景题:我们不适用redis,现在需要你用MySQL实现一个分布式锁(没答好)
(我考虑的是先构造表,MySQL的悲观锁,用update的方式去获取) - Java基础
- new String(“s”),讲一下这个过程,生成几个对象
- equals和hashCode
如果x.equals(y),但是hashCode不相同,产生什么问题 - 多线程
- synchronized自旋,升级锁的过程
- JVM
- 虚拟机栈中
- 写题
- 线程安全的单例模式
(SINGLETON前面的修饰符写成了public,说了好几次再检查) - 手写生产者消费者模式
(没加finally块,一直提示我让再检查一下)
百度三面(3月28号、30分钟)
- 感觉是部门的负责人,面试就十分冷漠,没有回应
- 自我介绍,项目介绍
- 详细问了问项目
- Spring全家桶( 因为Spring源码没怎么看过,从这开始就是地狱模式了)
- Springboot自动配置原理
- Springboot自动装配的时候出现bean的错误,怎么解决
- Spring的IoC
- IoC的初始化
- 获取bean的方式
- 在构造注入时的查找bean的原理
- 学习上的问题
- 你怎么学Spring,出了问题你怎么处理的
( 前边IoC已经被问蒙了,说了一句我觉着看书记得不太牢固)
( 因为在实验室面的,面完师姐给了一个更好的答案,分享给大家:
应该先说学习的大体的流程,比如会找一本比较好的书,系统的看一遍,了解基本的框架的组成,然后举一些具体的书名,已经实际写代码时候遇到了问题怎么处理) - 问了一下是不是4月能来
蚂蚁一面(3月26号、50分钟)
- 自我介绍、项目介绍
- clickhouse,面试官说了前面都是CRUD的工作,咱们聊聊clickhouse
- clickhouse建表、分区键、索引隔离长度
- 数据的存储,idx文件、mk2文件、bin文件
- 稀疏索引,批量插入
- MySQL,既然之前说了clickhouse的索引,咱们聊聊MySQL
- MySQL的索引结构、B+树大小
- 存储引擎
- MySQL锁
- B+树 和 红黑树
- 红黑树 和 2-3树
- Java容器,刚才咱们说了红黑树,红黑树在 Java容器中有哪些应用
- TreeMap
- HashMap(光说TreeMap,没想起来HashMap)
- HashMap的参数,1.7和1.8的版本
- HashMap1.7的问题
- Java并发Map,HashMap除了刚才说的循环成环的问题,还有哪些问题
- ConcurrentHashMap在1.7和1.8的结构
- ConcurrentHashMap在1.8的put过程,CAS,初始化过程,synchronized下插入链表、插入红黑树的过程
- 多线程
多线程当时问的具体不太记得,也是常见问题 - .Java IO,咱们聊聊IO中的模型吧
- 讲一讲IO模型
- 阻塞和非阻塞的调用过程
- IO复用模型(我从socket在操作系统中的分配开始讲,讲到select的默认1024个的时候被叫停了,问了一下你这是不是特别准备的)
(以下问题是四连不会) - 了解分布式吗,讲一讲
- 了解RPC吗,讲一讲
- 了解机器学习吗,讲一讲
蚂蚁二面(3月29号、45分钟)
- 自我介绍,项目介绍
- 项目中的工作,讲两个难点的具体过程和解决
- 还是单机部署到分布式部署的分布式锁的问题
- 出了两个场景问题,思路
4* 淘宝中一般商品有很长一段描述,我们现在简化不考虑标点和其他,怎么找到给出的关键字 - 想几个测试用例
(交替出现的测试用例没考虑到,面试官最想问的应该是这个用例) - 现在有一列火车,有10站,每站都有人上下车,设计数据结构,处理每个站的座位数
(两个问题都是无声了半天,然后暴力的方法还没讲清)
总结
- 面试体验的话,腾讯和蚂蚁的面试体验是最好的,面试官都技术特别强,我感觉都是巨佬那种,
你不会的问题或者是答错的问题都是会给一个提示往正确的方向去引导你,而且八股文也很少,会根据实际情况提问 ,
我个人觉得腾讯的问题主要根据网络方面问,蚂蚁的主要是往分布式这一方面。 - 因为当时百度的二面和字节约的面试冲突了,两次字节的面试官打电话都没接到,然后3月30号被字节HR打电话让解释为什么没去参加面试,问我是不是拒绝流程,应该是没了。
最后
在文章的最后作者为大家整理了很多资料!包括java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书等等!
全部免费分享给大家,只希望你给作者点个三连!
如果有需要的朋友戳这里直接下载就好了,验证码:csdn