之前给大家分享了一个朋友在字节面试的面试经历和拿到offer的过程,过程也算是比较精彩了,感兴趣的朋友可以去翻翻之前的那篇文章。话不多说重点来啦,一直有人发私信问我有没有其他大厂的面经分享啊,我也是联系了几个参加春招去面试阿里头条的粉丝,从他们那拿到了面试题和面试流程,花了三天给大家整理在了下面。
阿里-钉钉-春招实习-面试-java研发
一面(p7)(1h45min):
1、自我介绍(主要是项目经验,及项目中遇到的难点)
2、针对项目中中间件zk,dubbo,kafka等出题
3、消息中间件的优缺点及选型
4、dubbo服务的一些原理
5、具体场景进行接口设计(例如拉取聊天记录(cas进行版本控制))
6、手撕代码:类似于三数相加,写完以后进阶,如何在多线程的情况下完成这个题目(手写mapreduce)(ps:我是通过volatile去写的))
7、docker的了解,docker与虚拟机的设计区别
8、http几个版本的差别
9、介绍组内主要工作
10、问问题
二面(p9)(1h):
1、自我介绍(主要是项目经验,及项目中遇到的难点)
2、针对项目中的rpc中间件dubbo原理询问
3、如果自己设计一个rpc框架怎么设计
4、各种序列号协议的特点
5、nio的设计架构
6、rpc与http的对比,为什么spring cloud用的是http
7、消息中间件的优缺点,选型(主要针对kafka于rocketmq)
8、docker与虚拟机的设计差别?用过k8s没有?让你设计一套容器管理的框架怎么设计
9、日常学习的方式
10、随机算法如何做到“公平”
11、对未来的规划
12、问问题
三面(p9交叉面)(1h):
1、自我介绍(项目没怎么问)(这一面确实开放性的场景题)
2、针对spring框架中bean的生命周期,如何不使用spring配置生命周期的功能,完成每个request与session都是单例的情况(利用反射生成匿名类)(具体的描述不是特别记得了,反正挺难的)
3、Java的aop的实现原理,两种代理机制的差别(实现原理)
4、如何设计一套rpc框架
5、序列化的知识点,serializable关键字的作用(实现原理),集中序列化协议,pb的优点
6、tcp、udp的特点
7、tcp在当前存在的问题,滑动窗口机制、拥塞控制的不合理性,如何解决这个问题(用udp的方式解决滑动窗口的问题,解决网络传输被限制的问题)(参考google正在开发的一套网络协议)
8、 restful阐述
9、rpc过程中异常怎么处理的,利用反射生成?还有怎么传输或者有没有必要序列化传输?
10、自己日常的学习方式
11、自己的职业规划
四面(hr面)(1h):
1、自我介绍
2、为什么跨考,会不会专业知识不够
3、家庭情况
4、生活习惯、学习的方式
5、为什么会有这么多大厂的offer,是如何做到的
6、offer选择
7、从小学开始问,问到现在的一些经历
8、有什么问题要问
核心广告系统与创意中心-后端开发面经
头条一面:
1、介绍自己(主要说项目经验,项目的上下文)
2、hashmap源码、concurrenthashmap源码
3、索引的功能、底层实现
4、索引为什么用b-tree实现有什么优点
5、索引用b+树实现每次读取的时候操作系统的动作;
6、mysql引擎区别;
7、innodb的默认读是什么;innodb可重复度的实现原理(mvvc+next-key lock)
8、多线程线程安全的一些知识;
9、悲观锁&乐观锁;
10、volatile关键字:内存可见性的原理;禁止重排序的原理;
11、一道算法题,应该是树的我记得
头条二面
1、介绍自己(主要说项目经验,项目的上下文)
2、一道sql题目(挺难的)
3、一道算法题:区间合成吧我记得是
4、rpc框架,如果自己实现要怎么实现;
5、负载均衡
6、mq的优点,mq选型的原因;
7、docker与虚拟机的差异和优缺点;
8、线程安全;
9、垃圾回收,g1和cms实现细节;
10、数据库事务
11、覆盖索引
头条三面:
1、介绍自己(主要说项目经验,项目的上下文)
2、主要问了大学以来学习历程
3、主要自学了些什么
4、死锁的条件;
5、怎么避免死锁;银行家算法是什么;
6、tcp、udp;tcp的拥塞控制;tcp/http的滑动窗口存在的弊端
7、常用的liux命令行
8、算法题:字符串加减
9、spring的生命周期
10、这一面面的知识点都是比较基础的,但是会找一个刁钻的角度深入进去
主要考察个人发展的空间吧我觉得
美团-到店事业部(上海)-后端开发-春招
一面(55min)
1、自我介绍
2、为什么笔试一题没写,然后让我手撕三题算法题
3、项目经验介绍,及项目中遇到的难点
4、为什么跨考,计算机基础好吗
5、计算机网络tcp,udp ,http几个版本之间的比较
6、java虚拟机
7、java锁机制
8、操作系统中文件系统,进程与线程
9、银行家算法
10、dubbo的原理解释
11、如何做熔断机制
12、常见的负载均衡的算法介绍
二面(1h)
1、自我介绍
2、一面问了哪些问题
3、项目经验
4、rpc框架,及如何实现rpc框架
5、如何设计一套高并发的系统(微服务,消息中间件解耦,缓存。。。。)
6、乐观锁悲观锁
7、mysql索引,实现方式,原理,聚簇索引,覆盖索引等
8、innodb的mvvc及next-key lock
9、场景题,大致是用版本控制,进行数据库查询
10、mysql中如果一个字段是varchar,查询的时候查的是int类型会发生什么(索引失效)
11、es介绍,倒排索引的实现
12、spring aop的实现原理
13、mybatis一级索引、二级索引
14、问问题
15、愿不愿意去北京