前言
面试字节跳动的起源是一个同学在学院群里发了一个内推群,是上海抖音的招聘,我就投递了,基本流程走的很快,简历发过去很快就有hr加你微信来商量面试时间,当时因为疫情原因没有复工,所以约了一周后面试,两天面完三面,offer审批也比较快。下面是具体面试过程。
一面 3.9 50分钟
- 算法题:判断一个数组是不是搜索二叉树的后序遍历的结果
- tcp udp区别
- tcp如何实现有序传输
- tcp有序传输过去的数据还是分组的吗
- tcp三次握手
- 线程和进程
- threadlocal
- AQS
- aqs如何实现共享和独占
- 跳表,插入,删除,时间空间复杂度
- 数组和链表的区别
- 抖音实现关注和被关注,如何建表
- 缓存穿透
这一面问的蛮基础的,算法题也比较简单,只要认真准备春招的同学应该都能答出来。
二面 3.9 50分钟
- 项目使用的外部容器有了解吗
- volatile
- 单例模式
- Java 创建线程
- 如果是实现runnable接口的话,需要创建thread吗
- 线程池的运行过程
- 为什么要用springboot
- 算法题:二十分钟手写最大堆
这一面我面的很差劲,外部容器只知道是tomcat,其余不了解;写单例模式,双重检验中volatile的作用没解释清楚,和面试官还争起来了,最后发现是我自己写错了,当时就感觉要凉凉;算法题本来是一个topk的问题,我说要用优先队列写,面试官说那你直接写个最大堆吧(手动拜拜,所以说同学们千万不要给自己挖坑啊!!!),我凭着不清晰的记忆写了一下,思路是对的,但是跑用例应该是有问题的,最后还是让过了。
三面 3.10 50分钟
- 项目相关
- url到页面的过程
- 智力题,岛上,有红帽子白帽子,自己不知道自己的帽子,如果知道了自己的帽子,当晚就会离开。有一天有一个人来,告诉岛上的人,你们中至少有一个红帽子,请问之后会发生什么?
- 矩阵中的最长上升路径
- 平常怎么学习一些新技术
- 最近在看什么书
- 并发编程那本书中,给你印象比较深刻的点
这一面应该是主管面了,没问基础知识,大部分时间在智力题上,一开始没什么思路,后面在面试官的提醒下也算是把答案弄出来了。算法题比较常规,是leetcode热题。最悲催的是我面完去牛客网上发现了一模一样的三面面经,还是要多刷牛客网hhh。
总结
可以看到,相比阿里美团等公司,字节跳动对于项目的关注并没有那么多,更多的关注你的算法能力和智力(?),比较在乎算法的效率和解题的速度,其他地方答的不够好,只要算法做得好,还是有可能力挽狂澜的,适合那些项目经验不够丰富,刷题能力强的同学去试试,当然你要是有丰富的项目经验就更好了。并且字节的面试效率很高,面试体验算是春招以来最好的一家。
当然,就我个人的经历来看,面试还是有点碰运气的感觉。遇到做过的就秒了,遇到没做过的或是不熟悉的就会很懵,即使最后做出来了也是磕磕绊绊的,给面试官的印象不好,所以希望大家还是做好准备,多刷题总是没错的。