字节跳动这份面试题,你能打几分
最近这段时间,身边的一个朋友刚刚拿到字节跳动的 offer,一起来复盘一下他的 offer 之路,希望能给正在看机会的你有所帮助。
这次面试总共经历了四轮,这四轮面试都是视频面试,其中前三轮是技术面试,最后一轮是 hr 面试。
前三轮技术面试都有一个手动写代码的环节,在牛客网上写。情况也不完全一样,有的是先写代码后面试,有的是先聊一会儿再写代码。
首轮面试
1.1 算法题
开始首先一道算法题,题目是链表上的数字相加。题目类似下面这道 leetcode 题。
https://leetcode-cn.com/problems/add-two-numbers/
这道题截图如下:
笔试题跟上面这个非常类似,不一样的是字节的问题中,每位数字不是按照逆序的方式存储的,而是高位在前,低位在后。
解题思路:
链表反转相加后再次反转
从前往后遍历,从后往前相加,需要记录前置节点。
1.2 java 基础
主要是以下几个方面:
AQS,基于 AQS 扩展的几个类
多线程,并发编程,问了很多
hashmap,问得比较多,类似数据结构、线程安全、哈希冲突、转红黑树、负载因子
ConcurrentHashMap,底层结构,怎么提高并发能力等
1.3 计算机网络
主要是以下几个方面:
tcp/ip
http
二轮面试
2.1 算法题
开始首先一道算法题,随机链表复制。
题目大概如下:
每个节点除了 key,value 和 next 元素外,还多了一个 random 指针,这个指针随机可以随机指向表内任意元素,要求空间复杂度为 O(1),新复制一个一模一样的链表出来。新链表所需要的空间不计入空间复杂度.
2.2 java 基础
无锁并发
synchronized
ArrayList
jvm,主要是垃圾收集器,垃圾收集算法。
2.3 mysql
索引结构
sql 语句执行顺序
执行计划。
2.4 redis 相关
常用数据类型及底层数据结构
主从同步
响应变慢的原因
切片集群如何路由等等
第三轮
3.1 消息中间件
主要是问熟悉哪些,如何保证消息可靠性。
3.2 计算机网络
http1.0、http1.1、http2.0、https 基本都问了一下。
3.3 项目经验
这个主要按照简历中写的项目进行提问,问得不算太多。
3.4 一道算法题
分数的循环小数展示,题目如下:
给你任意两个整数,这两个整数相除的结果使用小数进行表示,如果出现循环小数,则找出循环小数,然后用括号括住循环的数字。例如,1/3=0.(3),3 就是其中的循环小数,需要打括号。
HR 面
第四轮面试是 HR 面试,到了 HR 这一轮,基本就过了。
4.1 基本问题
主要问一些学历相关信息,履历相关信息,感觉是在确认简历的内容是否真实。
4.2 职业规划
这个跟 HR 聊了一会儿,主要侧重未来 5 年的规划等等。
4.3 薪资
这块儿应该是大家最关心的。
说实话,字节还是挺舍得给的,这点真的不像某些公司。而且 HR 还尽量帮自己申请,甚至高出自己的预期。
这里主要想分享的是股权这一块儿,HR 会问自己选择股权还是选择现金。
比如每年给 100 股,4 年就是 400 股。如果按照每股 1000 元人民币,大概 40 万。还是不小的一个数字。分四年解冻的话,第一年解 15%,第二年 25%,第三年 25%,第四年 35%。
如果能坚持 4 年,股权翻一倍,也可以多拿 40 万,也是很不错的。
最后就是年终奖,HR 说一般是 0~6 个月,普通是 3 个月,这个也是在总包里面的。所以呢,月薪=(总包年薪-期权/4)/15。
根据自己的实际情况来就好。我个人还是期望拿现金。
写在最后
从上面的技术面试题看来,字节的面试还是非常注重基础的,其实题目并不难,比如算法没有考到 DP 算法。多加准备应该是没有问题的。题目并不要求百分之百会,能答对百分之八十应该也就差不多了。
不同的部门和团队面试的问题难度肯定是不一样的,运气也很重要。
这次面试的一个奇怪的地方在于,框架方面的问题基本没有问,比如 spring 相关的各种框架三轮技术面都没有问到。这个可能是跟面试官有关系。
最后,面试环节也是快速变化的。但只要我们平时工作学习中多加以积累和总结,慢慢减小自己的技术盲区,算法多写多练,应该是能应对的。
在即将到来的金九银十季中,祝求职的人都能拿到心仪的 offer。
有需要 Java 面试资料 文档的小伙伴可以加 v:XIaonan00000621 领取
评论