首页 > 【2021校招提前批】字节跳动-客户端开发面经
头像
清水煮稀饭
编辑于 2020-07-31 11:44
+ 关注

【2021校招提前批】字节跳动-客户端开发面经


2020/7/30更新:经过20天的漫长等待后,终于收到了发来的意向书,感觉hr小姐姐的声音异常甜美呢!


一面(50min)

面试时间:2020/7/3 14:00

面试形式:牛客网视频面试

--------------------------------------

上线后网络状况不佳,重连了几次以最低画质连接上了(⊙﹏⊙)

1. 自我介绍,问了毕业后工作意向和意向城市

2. 项目介绍,我讲了本科毕设做的一个深度学习相关的网站

3. 会不会C/C++(貌似面试小哥是搞C/C++的),我说了不太会就开始问Java了

4. final关键字的作用

5. 进程和线程的定义,进程可以操作哪些资源,进程的内存控制

6. TCP和UDP,区别、联系和使用场景

7. HTTPs相关,说了一大堆(把RSA+GCM+SHA256的流程都讲了一遍),但是忘了说数字证书,被小哥提示了

8. HTTP响应状态码

9. 有没有接触过网络编程

10. 编程题:二叉树和为target的路径:定义从根节点开始、叶子节点结束为一条路径,返回所有和为target的路径。(DFS+Backtrack)

11.反问环节


总体来看可能小哥准备了很多C/C++的问题,但是我不会,就临时问了一些其他问题,希望后续的面试顺利。


刚刚17:30接到HR小姐姐的电话,约了二面。


二面(40min)

面试时间:2020/7/6 17:30

面试形式:牛客网视频面试

--------------------------------------

1. 自我介绍

2. 项目介绍

3. 又问了会不会C/C++???难道这个部门C/C++居多?

4. Java内存管理(程序计数器、Java栈、本地方法栈、Java堆、方法区那一套)

5. Java GC算法介绍,适用场景,四种引用

6. 内存对齐???(没有听说过)

7. 大端小端

8. C中malloc的使用???(凭着印象说了几句)

9. 数组和链表的联系和区别,适用场景

10. 遍历二维数组,按行遍历和按列遍历效率是否不同(只知道不同,不知道为什么)

面试结束后查的资料:

  • 二维数组的内存地址是连续的,当前行的尾与下一行的头相邻
  • 现代计算机,在CPU与内存之间还有一种存储机制,那就是CPU缓存(cache)。CPU缓存的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。
  • 访问数组元素时,CPU不会每次只从内存中读取一个元素,而是读取一个区域的元素。假设二维数组的大小为(10 x 10),访问第一个元素时,CPU也会读取它的相邻元素,因为这个数组比较小,CPU一次就可以把所有元素缓存,因此无论是按行访问数组还是按列访问数组,CPU访问主存的数量都相同。随着数组元素越来越多,CPU缓存一次只能读取数组不到一行的数据,因此按列访问元素时每访问一个元素都要访问内存,因此速度就会慢很多。

11. 数据库的索引是什么?有哪些常见的索引数据结构(b树,b+树)

12. 通过实现Runnable接口和继承Thread类创建线程的不同之处

13. 单线程i++和多线程i++结果的差异和原因

14. 算法题:

给定一个字符串,如"abdkfcefbikbaabbsdsbb",删除其中所有连续的"ab",最后的结果没有连续的"ab"。

(看了别人的面经,用栈瞬秒~)


期待还有三面


----------------------------------------------------

7月9日下午17:20接到HR小姐姐的电话,约7月10日的三面



三面(40min)

面试时间:2020年7月10日 10:15

面试形式:牛客网视频面试

-----------------------------------------------------

依旧是网络不太流畅。。。中途卡顿严重,重连了一次后好很多

1. 自我介绍

2. 项目经历(我把同一个项目讲了三遍,不过这次问得比较深,包括项目中一个神经网络模型的构成、如何将一张图像预处理后喂入网络等

3. SQL题:有A和B两张表,A表中有学生的信息,包括了学生的班级id,B表中有班级的信息,包括班级的id和班级的名称,要求查询给定班级名称的所有学生的信息。一个嵌套查询搞定(当然级联查询也可行)

4. APP开发的问题:在一个view中有许多组件,比如按钮,那么如何判断鼠标点击在哪个组件上呢?我一开始没有理解问题的意思😂,后来发现这是一个多叉树的结构,可以通过设置以坐标为关键字的多叉树,从总view递归查找目的组件。若这棵树的高度为n,那么查找的时间复杂度为O(n)。

5. Java和Python语言的不同点,它们的虚拟机有什么不同

6. Java的GC和Python的GC

(问Java和Python是因为我说了最熟悉Java和Python)

没有算法题😋

7. 反问环节

8. 接着疑似hr面:

(1)对地域的选择出于什么原因(因为我投的上海base被调剂到北京了,这个部门两边都有岗位,技术栈不太一样)

(2)技术栈有什么偏好

(3)认为自己相比于其他同学有什么优势和劣势


期待OC

更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐