字节跳动Java社招面试经历分享

一面

1、问项目

2、任务系统怎么保证任务完成后发奖一定成功

3、zset 延时队列怎么实现的

4、redis 数据结构有哪些?分别怎么实现的?

5、redis 的持久化

6、mysql 的索引

7、一个无序数组找其子序列构成的和最大,要求子序列中的元素在原数组中两两都不相邻


二面

1、Redis ZSET 怎么实现的? 尽量介绍的全一点,跳跃表加哈希表以及压缩链表

2、Redis ZSET 做排行榜时,如果要实现分数相同时按时间顺序排序怎么实现? 说了一个将 score 拆成高 32 位和低 32 位,高 32 位存分数,低 32 位存时间的方法。问还有没有其他方法;

3、MySQL 事务的四个隔离级别? 先说了四个级别的区别,然后说了每个级别可能产生的问题

4、binlog 日志和 redolog 日志清楚吗? 说了两个日志的作用以及两阶段提交

5、C++ 的动态多态怎么实现的?

6、C++ 的构造函数可以是虚函数吗?

7、缺失的第一个正数(leetcode41题)

8、linux 系统里,一个被打开的文件可以被另一个进程删除吗?

9、一个 10M 大小的 buffer 里存满了数据,现在要把这个 buffer 里的数据尽量发出去,可以允许部分丢包,问是用TCP好还是UDP好?为什么?

10、一个完整的 HTTP 请求会涉及到哪些协议?


三面

1、问项目

2、redis ZSET 是怎么实现的?

3、让你设计一个限流的系统怎么做?

4、让你设计一个延时任务系统怎么做?说了两个方案,一个是使用 redis ZSET 来实现,考虑分片来抗高并发,使用 redis 的持久化来实现落地,使用 redis 的哨兵实现故障转移。 一个是使用时间轮的方法。

5、现有一个随机数生成器可以生成04的数,现在要让你用这个随机数生成器生成06的随机数,要保证生成的数概率均匀。

6、有 N 枚棋子,每个人一次可以拿1 M 个,谁拿完后棋子的数量为0谁就获胜。现在有1000颗棋子,每次最多拿8个,A 先拿,那么 A 有必胜的拿法吗?第一个人拿完后剩余棋子的数量是8的倍数就必胜,否则就必输。

7、给出一棵二叉树的根节点,现在有这个二叉树的部分节点,要求这些节点最近的公共祖先。

#面经##社招##字节跳动##Java工程师#
全部评论
java怎么还问c++
点赞 回复
分享
发布于 2020-07-29 10:46
不是java吗,怎么还问c++
点赞 回复
分享
发布于 2020-07-30 22:47
联易融
校招火热招聘中
官网直投
请问楼主通过面试的电话一般多久能收到啊
点赞 回复
分享
发布于 2020-08-14 15:13
这个人不知道是不是抄的别人的文章,然后把他们拼接到一起说是字节的面试题,和我在掘金看到的一篇文章一样😂,文章链接https://juejin.cn/post/6844903986261131278?share_token=b3b7cb49-270d-4f04-9741-f49daa38406b,大家可以看下
点赞 回复
分享
发布于 2021-12-25 15:17

相关推荐

1 45 评论
分享
牛客网
牛客企业服务