【校招VIP】字节跳动日常实习面经

06月20日 收藏 0 评论 2 java开发

【校招VIP】字节跳动日常实习面经

转载声明:文章来源https://www.nowcoder.com/discuss/970793

5-20 官网投递(无内推),5-20 当天简历挂,5-30 接到电话说被另一个部门捞了,约面,当天下午又打电话来说面试官有事,推迟一周......

6-6 15:00 一面(65min)

面试官上来介绍部门,介绍面试流程,无异议,开始面试。

1.介绍项目。

这里面试官了解到我项目都是学习项目后貌似不感兴趣,就没问了。

2.计算机网络模型。
5层 & 7层,介绍各层协议及功能。

3.详细介绍下 TCP 和 UDP?用在啥地方呢?
这里介绍的比较详细,讲了差不多 10 分钟,面试官反馈也还不错。

4.场景题,类似 LOL 这种游戏用 UDP 还是 TCP 好?
处于对延迟的厌恶,我秒回答 UDP...

5.你说用 UDP,那我万一放一个技能丢包了怎么办?
考虑不周,在应用层做封装,实现可靠的 UDP 协议。

6.如何实现可靠的 UDP?
参考 TCP,对 UDP 编号,在应用层做超时重传机制,然后连接管理和拥塞控制可以不用管,重点是超时重传机制,实现性能与可靠的折中。(UU 们有啥想法呀,可以讨论下)

7.IP 协议是做什么的?链路层呢?应用层协议了解吗?http 状态码?
路由表匹配,决定下一跳地址,然后用 ARP 找到下一跳 MAC,起到路由作用,链路层主要就是封装成帧、透明传输、差错检验,说了说 MAC 协议和 ARP 协议。

8.线程与进程间的关系。

9.进程有独立的虚拟地址空间是吧,那虚拟地址空间内有哪些东西呢?
问你有哪些程序段了。

10.程之间共享哪些数据?
这里回答错了呜呜呜,我说了堆和动态链接库。
答案是共享整个进程空间的所有数据,即使是线程内的独立栈,如果有一个指向该栈的指针,另一个线程也是可以访问的,所以任何数据都是可以共享的...

11.程序与进程间的关系?
进程是程序的正在运行时,程序是进程的资源集合。

12.它们之间一一对应吗?
不太清楚,我回答应该是一个程序可以多个进程。

13.说说 Java 泛型的原理?
编译期的语法糖,编译期强制转换,运行时向上转型,谈了谈为什么这么设计,主要是兼容旧版本。

14.如下代码是否能运行,如果不能,会报什么错误?

public static void main(String[] args) throws Exception {
List<Integer> list = new ArrayList<>();

list.add(1);
list.add("123");

Method add = list.getClass().getMethod("add");
add.invoke(list, "321");

String str = list.get(1);

System.out.println(list);
System.out.println(str);
}

15.synchronized 的原理,详细讲讲他为什么是可重入的?其他可重入锁了解吗?
从偏向锁、轻量级锁、重量级锁 分别解释重入原因。
ReentrantLock,原理 AQS。

16.如下代码哪些方法是冲突的,为什么?
比较简单,就是考你 synchronized 用法。

17.Java 的类加载机制。

18.代码题,字符串匹配,字符串允许乱序,例如 "abcd",在文本串 "ucwdbaccwjab" 中第一次匹配到的位置是下标 3,则输出 3,
太紧张了,代码题烂掉了,写了 20 分钟没写出来。
一开始以为就是字符串匹配,本来想写 kmp,然后面试官让我写暴力,然后就写了个暴力匹配,,然后面试官提示可以乱序,这时候超级紧张。
然后我以为我懂了,我以为是最小覆盖字串,呜呜呜,又理解错题目了,写完了才发现写错啦,浪费了好多时间。
这里大脑已经空白了,停止转动了,知道面试官提示已经过去 1 小时了...想哭

19.反问

面完真的想哭,我算法没那么烂的,力扣 500+,周赛 2150 分,真没那么烂的,现在想着都有点难受,结束后三分钟滑动窗口秒了......

6-6 19:00 问卷调查,收到问卷以为凉了。

6-7 19:35 约二面,收到邮件我是蒙蔽的,先是不敢相信,然后就是傻笑,傻笑了好久...可能是真缺人吧,只能感慨运气好,感谢面试官,感谢字节跳动,有时候你离成功就差了点运气......

6-9 16:00 二面(45min)

这一面貌似是 Leader 面,面试官比较老成,反问时还说会给我发 offer。

1.对一面做一个自我评价,你认为那里表现好,哪里表现不好。
这里注意不好的地方一定得说一下你会做哪些改变。
这里我还提了一句说我计算机基础不错,然后就悲催了......

2.你是怎么认为你计算机基础不错呢?

3.为什么经常总结就能反应你基础不错呢?

4.你善于思考能说明基础不错吗?
麻了,最后说了我课程成绩都满绩,总算没问了。

5.平时不会的怎么学习呢?

6.多久能入职?实习多久?大三怎么办?

7.介绍一下常见的排序算法,复杂度,稳定性?

8.链表排序用什么排序呢?
归并排序、快速排序。

9.面试官似乎不知道怎么快速排序,于是:算法题:链表快速排序。
我都说了,能不会写吗,秒了。

10.谈谈你对设计模式的理解?
这题压力好大,我说了很多面试官一直没反馈,等我继续说,说了 7-8 分钟,直到我两大眼瞪小眼,面试官才继续了问。

11.适配器模式和代理模式的区别?装饰器模式呢?
谈了谈相同之处,都是增强,可扩展性号,从 UML 类图说明了不同之处,举了举几个例子。

12.OS 中的死锁了解吗?
这里说了很多,死锁必要条件,死锁预防,死锁检测,银行家算法。

13.算法题:死锁检测
拓扑排序秒了。

14.反问
面试官说我表现不错,会把 offer 发给我,当时贼开心。

6-9 20:00 问卷调查,6-10 10:35 三面预约,白开心了,还以为直接发 offer 了,面试官说话不算话(虽然结果还是 offer 了,似乎也没赖?)。

6-13 18:00 三面(55min)

字节面试基本不会重复,考察也挺全面的,第一面考察基础,OS + 计网,第二面考察算法与数据结构,还有点 hr 面的意思,三面主要考察项目。

1.自我介绍

2.介绍一下数据库项目,有什么难点,怎么解决的?

3.详细讲讲崩溃恢复,以及项目中检查点机制是如何加速崩溃恢复的。
看我了解的还不错,就没问数据库了。

4.介绍一下 RPC 项目,有什么难点,怎么解决的?

5.介绍一下 RPC 的过程,以及你对 RPC 的理解?

6.RPC 用了序列化协议?
kyro。

7.为什么使用 kyro,算法原理是什么,相比原生序列化,xml,json以及谷歌的 protobuf?

8.小程序前后端都是自己写的吗?后端用什么语言写的?

9.Java 中数组是对象吗?为什么?
是,同样经历类加载的5大步骤,符合对象的声明周期,面试时说错了,我说数组没有继承 Object,事实上是继承了的,晕...

10.Java 中文编码几个字节?
说 unicode 2 个,然后扯了扯 utf-8 变长编码。

11.utf-8 编码原理,怎么变长?

12.平时怎么学习的,个人优点缺点?
碰到这种非技术性问题,使劲扯,能拖一会时间是一会(狗头),我这里扯了十多分钟。

13.平时有自己学习什么框架吗?
redis,mq,spring 全家桶。

14.来讲讲 SpringBoot 吧,我没用过 SpringBoot,现在你得讲的让我理解它是干嘛用的?
好难啊,讲的好乱,反问时面试官让我别背答案,可以多思考技术产生背景,问题背后原因等。

15.算法题:树的子结构

16.算法题:爬楼梯,这里是个变种版,一次能爬 1阶、2阶和 5 阶。
简单题秒了。

之后面试官让优化空间复杂度,我代码是这样的:

public static void main(String[] args) throws Exception {
int n = 9;
int[] nums = new int[]{5, 3, 2, 1, 1};
for (int i = 5; i <= n; i++) {
int newVal = nums[0] + nums[1] + nums[4];
for (int j = 4; j > 0; j--) {
nums[j] = nums[j - 1];
}
nums[0] = newVal;
}
System.out.println(nums[0]);
}

面试官说不行,这样不是引入了额外的时间复杂度吗?如果把跳 5 阶改成跳 1000 阶你不是额外循环 1000 次?

当时没想出来要怎么做,因为在枚举完 i 后 dp[i - 5] 肯定要变成 dp[i - 4],如果不赋值的话要怎么做的?因为时间关系面试官就没让我想了,回去之后想了想是不是可以用双端循环队列做,这样就可以达到 O(1)的移动了,不知道大家有啥想法?

17.反问

6-14 10:00 问卷调查

6-15 14:00 Offer,无 HR 面(感觉面试官把 HR 该问的都问过了...)

总的而言我不觉得我自己实力有多强,面试官知道我是大二的都问的挺基础的,运气占很大原因把,写写面经反馈一下社区,积攒一下运气,希望大家都能拿到自己想要的 offer,共勉!

C 2条回复 评论
小朱吖

收藏从未停止,学习从未开始

发表于 2023-11-23 21:00:00
0 0
陈书言

这几个问题答好了面试基本稳了吧

发表于 2023-02-02 22:00:00
0 0