面试官:xxx是怎么实现的?xxx为什么这么实现?附头条java岗面经
前言
给大家说个误区吧,好多同学看到了社招面经都会觉得这很简单,完全是校招级别,甚至感觉都不如校招面试难。
其实,这是不对的。我个人总结了下校招和社招的区别:
- 校招面试看重基础,全方位无死角的考察各位的基础知识点,并且一般考察XXX是什么?XXX怎么实现的?
- 社招面试对于项目的考察至少占到了一半,2面或者3面会针对项目做一个详细的沟通与了解,包括整个项目的业务架构,技术架构和技术难点和卡点等;
- 社招面试都是这么考察的,XXX是什么?XXX是怎么实现的?XXX为什么这么实现?也就是说同一个知识点,比校招多了为什么要这么实现?
- 校招的算法可能会比较难一点,而社招因为看重项目和技术的深度,限于时间,所以算法考察会相对简单一点。
为什么说社招面试中的XXX为什么这么实现比较难?
因为,我们在网上搜集到的资料中,绝大多数都是在介绍XXX是什么?XXX是怎么实现的?唯独没有介绍为什么这么实现,甚至于面试官会问还有没有别的实现方式?或者更好的实现方式? 这就导致同一个知识点,社招面试的难度可能会直线上升。并且我们日常也缺乏思考,喜欢背题,所以导致社招面试表现不佳。
背景
本人硕士毕业,目前在小米任职Java开发工程师。在2017年参加的校园招聘中也曾拿到多家大厂的Offer。目前工作已满两年,于2020年3月开始开外边的机会。这段时间进行了一些面试,包括美团,快手,百度,头条以及滴滴,猿辅导这些公司的社招面试。下边和大家先进行一个头条的面经分享。
在Boss上投递了今日头条的Java开发岗位,话不多说,约好时间就开始了视频面试。
笔者这段时间整理了不少面经和相关的学习资料,感兴趣的朋友可以帮忙转发文章后,关注私信回复【学习】来免费获取
第一轮面试:一个小时45分钟(累死.....)
首先是自我介绍,然后针对我简历上的项目进行了项目的了解于提问。然后是基础知识提问,手撕代码环节。下边介绍面试官考察的知识点:
- 对象一定分配在堆栈对象不一定分配在堆上,JIT可以实现栈上分配
- JMM内存模型 原子性,可见性,有序性如何保证 工作内存与主内存 volatile,重排序举例
- synchronized和Lock的区别
- synchronized内部实现,偏向锁,轻量锁,重量锁 为什么需要自旋?
- HashMap,HashSet,TreeSet,ConcurrentHashMap
- Spring事务是怎么实现的?
- 类加载机制? 双亲委派机制 自定义了一个String,那么会加载哪个String?
- HTTPS和HTTP区别? 非对称加密有哪些缺点?
- XSS和CSRF攻击
- NIO,Linux网络IO模型五种
- Redis持久化
- MySQL隔离级别,一致性视图,undo log,redo log和binglog
- MySQL索引结构,回表,最左前缀原则
- 不使用第三个变量交换a和b的方式
- 算法题目一:a+b+c=0
- 算法题目二:链表倒数第N个节点
第二轮面试:一个小时15分钟
经过了一轮面试对基础知识点的狂轰乱炸,二面面试官主要考察对于项目的理解。涉及到的知识点如下:
- 多个项目的技术架构,不是业务架构 MySQL,Redis,Nginx,Kafka这些技术架构
- 项目技术点,学到了哪些?也要具体知识点。
- MySQL中为什么是最左前缀?
- 有没有接触过一些自动熔断工具
- 502可能的原因有哪些?
- 线上问题怎么排查?Full GC频繁怎么办?
- 服务的QPS,数据库的架构和版本。
- SpringBoot的优缺点分析
- SpringBoot的启动源码分析
- 服务的部署方式?
- 算法题目:按照之字形分层遍历二叉树,要求bug free,并且构造二叉树进行测试。
第三轮面试:45分钟
进行了一轮面试官对我基础知识的肯定,二轮面试官对我业务逻辑和处理问题能力的肯定。三面面试官主要考察一些开放性系统设计类型问题,涉及到的知识点如下:
- 项目介绍,从技术点和安全方面的考虑。
- 有研究过哪些算法?
- CAP理论的理解
- 如何设计实现中国象棋?
- 如何设计一个排队系统?
- 平时都是怎么学习的?最近都在关注哪些技术?为什么?
HRBP面试:30分钟
HR面试主要考察了一些个人基本情况以及未来的规划等,涉及到的问题如下:
- 自我介绍
- 为什么在看机会呢?在看什么类型的机会呢?
- 为什么看头条的机会?
- 你觉得头条是一家什么样的公司?
- 朋友同事如何评价你?
- 平时都有哪些兴趣爱好呢?
- 在原公司最享受的阶段是什么时候?为什么
- 你对我们的业务方向了解吗?
- 你对我们的业务方向和技术感兴趣吗?
总结:
一面主要是在考察基础知识点的掌握,二面主要是在考察对项目的理解与掌握,三面在考察面向对象的系统设计能力。
怎么说呢?如果找工作之前做了一个比较全面而且系统的总结与复习,我感觉面试过程还是会比较顺利的,当然我也是顺利拿到了头条的Offer。