头条社招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。

这段时间还在看别家的机会,并且已经拿到了头条,美团,快手以及百度的Offer。有时间继续给大家更新热腾腾的社招Java开发岗位的面经,感兴趣的可以关注~

来自一个实力很一般的菜鸟,如果对你有帮助,欢迎点赞收藏。

#社招##字节跳动##Java工程师##面经#
全部评论
社招确实是这样,直接问为什么,不是问你这个是什么!
1 回复 分享
发布于 2020-04-27 19:40
 非常强!
1 回复 分享
发布于 2020-04-10 12:54
阿里巴巴供应链团队社招,简历发邮箱yx245264@alibaba-inc.com
1 回复 分享
发布于 2020-04-08 18:50
买了大佬写的专栏,确实总结的相当到位....厉害啊~~~
点赞 回复 分享
发布于 2020-06-05 20:16
想问下从小米到快手,加了多少%比😉
点赞 回复 分享
发布于 2020-06-05 17:41
楼主平常上班的时候是怎么学习的啊,我虽然报了楼主的那个专栏,奈何自己还是菜只进了一个一般般的公司,我平常学习的时候找视频也会接触一些培训班。。说是架构师培训,不知道要不要报😂唉作为一个校招失利的人感觉未来迷茫。。楼主能给点工作时学习的经验吗
点赞 回复 分享
发布于 2020-05-02 15:41
楼主是面头条的哪个部门呢?
点赞 回复 分享
发布于 2020-04-25 22:41
请问下是一天内都面完的吗
点赞 回复 分享
发布于 2020-04-25 18:57
太猛了 这些知识点都看过 可是要能自己复述出来还是很难的
点赞 回复 分享
发布于 2020-04-10 10:43
&嘿,已收藏,留备用,谢大佬😋
点赞 回复 分享
发布于 2020-04-09 09:30
大佬 复习花了大概多久呀
点赞 回复 分享
发布于 2020-04-08 11:13
社招offer收割机啊,想问一下大佬,社招一般什么时候跳槽合适呢
点赞 回复 分享
发布于 2020-04-07 20:33
大佬太强了,点赞关注收藏!然后....可能就关闭了o(╥﹏╥)o
点赞 回复 分享
发布于 2020-04-07 20:31
大佬好
点赞 回复 分享
发布于 2020-04-07 20:25
tql,大佬最后选择去哪里了
点赞 回复 分享
发布于 2020-04-07 20:23

相关推荐

04-02 17:22
新疆大学 Java
1. 你在这个物流平台项目中扮演的角色是什么?主要负责后端的哪一部分?2. 能简单介绍一下你负责的核心模块(货单大厅)的业务流程吗?3. 货单大厅里高频使用的多条件组合查询,你后端的存储用的是什么?4. 这个查询对应的数据量有多大?5. 除了 MySQL,你有考虑过用别的存储引擎做这种多条件检索吗?有没有必要?如果要换,应该用什么来做?6. 简历上写了 SQL 优化,整个问题是怎么发现,然后怎么解决的?7. 什么是回表?8. 你用 EXPLAIN 发现查询慢,具体是因为没有用索引,还是索引没用对?9. 联合索引的“最左匹配原则”知道吗?具体是什么意思?10. “迷你豆包”这个项目是干什么用的?主要是出于什么考虑要做这个项目?11. 能简单介绍一下这个项目中你觉得比较感兴趣的技术点吗?12. 进程和线程的区别是什么?13. 进程的上下文切换和线程的上下文切换是怎么做的?包含了哪些步骤?14. 什么是虚拟内存?使用虚拟内存有什么好处?15. 缺页中断(Page Fault)是什么意思?16. 操作系统里面有哪些锁?(或 Java 里面有哪些锁?)17. 如果 synchronized 和 ReentrantLock(可重入锁)两个选的话,优先选哪个?为什么?18. 正常情况下(单体服务中),默认应该优先选哪个锁?19. 知道 BIO、NIO、AIO 吗?BIO 的“同步阻塞”是什么意思?20. 简单介绍一下 TCP 的三次握手和四次挥手过程。21. 为什么 TCP 建立连接需要三次握手?22. TIME_WAIT 状态出现在四次挥手的什么时候?23. TIME_WAIT 状态会持续多长时间?24. HTTP 状态码 404(找不到页面)代表什么?这是服务端的问题还是客户端的问题?25. HTTP 状态码 504 一般出现在什么情况下?26. 在浏览器里面输入一个网址,到页面最终展示出来,这中间经历了怎样的过程?27. 什么是 TCP 的粘包和拆包?28. 怎么解决粘包和拆包的问题?29. MySQL InnoDB 引擎的索引使用的是什么树结构?B+树和B树的区别是什么?30. 为什么 MySQL 采用 B+树,而不用红黑树?31. 听说过幻读吗?解释一下什么是幻读。32. 怎么解决幻读问题?33. 幻读在什么隔离级别下可以解决?34. 一般怎么解决 Redis 缓存与 MySQL 数据库的缓存一致性问题?35. JVM 的内存模型(运行时数据区)包括哪些部分?36. 字符串(String)和数字在 JVM 中分别存放在哪里?37. 垃圾回收(GC)算法有哪些?38. CMS 和 G1 垃圾回收器的区别是什么?它们分别应对什么场景?39. 为什么到了 JDK 1.8 之后开始主流推荐使用 G1?CMS 有什么缺点?40. 相比之下,CMS 和 G1 谁的 GC 停顿时间会更长?为什么?41. HashMap 和 ConcurrentHashMap 的区别是什么?42. ConcurrentHashMap 是怎么做到线程安全的?43. 简单介绍一下 Spring 的控制反转(IOC)和面向切面编程(AOP)。44. AOP 的核心底层是使用什么机制实现的?45. 我们平时写个注解就能生效,注解的基本原理是什么?它为什么能把逻辑织入到代码运行路径中?46. 你平时是怎么使用 AI 辅助开发的?你的项目代码是直接用 AI 写的吗?47. RAG(检索增强生成)的一个完整运行流程是怎样的?48. 为什么要做 RAG 这个东西?它解决了什么问题?49. Token 和上下文窗口(Context Window)的概念分别是什么意思?50. 为什么要控制 Token 的数量?51. 大模型的“幻觉”是什么意思?是怎么产生的?
面试问题记录
点赞 评论 收藏
分享
评论
35
290
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务