头条社招Java岗位-面经

头条社招Java岗位-面经

大家好,又见面了,我是全栈君。

点击上方“ 码农编程进阶笔记 ”,选择“置顶或者星标

文末有干货,每天定时与您相约!

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

头条社招Java岗位-面经

进入公众号回复关键字,获取面试题库

[  互联网求职笔试面试资料  

java面试题 ]

[JAVA架构师全套]

往日精选文章

视频|Java高性能优化电商秒杀
免费获取Git;GO;Java视频教程

头条社招Java岗位-面经

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111818.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 初级程序员面试题总结(一):

    本人将这几天面试的题目总结一些,如果出现错误请指正,谢谢。1,谈一谈spring。答:spring是为java程序开发提供的综合性的基础java开发平台,它提供了从表现层SpringMVC到业务层Spring再到持久层springData的一套完整的解决方案。spring的核心有两大块,第一块是AOP,面向切面编程,它将程序与业务分离,集中来解决一些公共问题。第二块是IOC,控制反转,由容…

    2022年4月8日
    57
  • ALSA的pulse插件_pulseaudio启动

    ALSA的pulse插件_pulseaudio启动此博文为记录我初次进行树莓派开发语音唤醒时遇到的问题以及解决方法,如果有更好的方法,欢迎讨论。问题一描述:我在进行snowboy的安装过程中,所有的程序能够正常运行,也能正常录音以及音频输出,但是树莓派重启后,我运行之前设置好的程序,程序依然能够运行,但不能进行正常的唤醒。我查了/.asoundrc没有问题,录音设备和音频输出设备也是正常的状态,在系统中也能列出。问题一解决:经过多次重装系统(因为我的树莓派不只是只有做语音唤醒,我一开始也不知道是哪里的问题)的排除,发现是树莓派重启之后pulseau

    2022年10月16日
    2
  • Adminlte数据分页设置「建议收藏」

    Adminlte数据分页设置「建议收藏」##分页数据提示英文翻译成中文在jquery.dataTables.js中”oLanguage”:{ “sProcessing”:”处理中…”, “sLengthMenu”:”显示_MENU_项结果”, “sZeroRecords”:”没有匹配结果”, “sInfo”:”显示第_START_至_END_项结果,共_TO…

    2022年7月27日
    2
  • java万年历算法_寿星万年历—java算法实现

    寿星万年历是我在网上见到的一份极高高精度的万年历,其采用先进的算法实现,其精度堪比刘安国教授为中国科学院国家授时中心制作的日梭万年历。但网络上只有javascript版本。于是自己将其翻译为java程序,并公布于此,方便大家使用。关于寿星万年历相关简要描述如下:寿星万年历是一款采用现代天文算法制作的农历历算程序,含有公历与回历信息,可以很方便的进行公、农、回三历之间的转换。提供公元-4712年到公…

    2022年4月7日
    60
  • CentOS 怎么设置某个目录包括子目录的写入权限 777呢「建议收藏」

    CentOS 怎么设置某个目录包括子目录的写入权限 777呢「建议收藏」chmod-R777文件夹例如:chmod-R777/varvar的权限就变成777,var下的所有子目录和文件权限都将变成777

    2022年8月30日
    6
  • PyQt5高级界面控件之QThread(十二)

    PyQt5高级界面控件之QThread(十二)QThread前言QThread是Qt线程类中最核心的底层类。由于PyQt的跨平台特性,QTHread要隐藏所有与平台相关的代码要使用QThread开始一个线程,可以创建它的一个子类,然后覆盖器其QThread.run()函数classThread(QThread):def__init__(self):super(Thread,self)._…

    2022年5月28日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号