首页 > 字节跳动 实习生面经
头像
Lluvia.luo
编辑于 2020-12-09 09:37
+ 关注

字节跳动 实习生面经

本人是大三的学生,所以仅供实习岗位的xd参考
(三面的面经有时间再更新)

周一下午拿到的offer,字节效率还是蛮高的,要内推的xd可以私聊我😄

一面

1. 浏览器输入URL之后的过程
2. 域名投毒
3. 计算机网络的7层模型
4. 说一说有哪些应用层协议
5. Http状态码中的302和401是什么用的
6. 有没有做过web的身份验证
7. 脏读的场景和解决方案
8. 谈谈幻读
9. 幻读和脏读的区别
10. MySQL中 redo log 和 binary log 的区别和场景的使用意义
11. 为什么innoDB使用B+树
12. TopK问题 用那些方式实现,一步一步的优化

- 首先是完全排序               O(n*logn)
- 然后是冒泡或选择排序    O(K*n)
- 接着堆排序                      O(n*logK)
- 使用二分的方式               ???

13. 算法题(给了我两道题,然后选一道来做)
给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。
按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:
"123"
"132"
"213"
"231"
"312"
"321"
给定 n 和 k,返回第 k 个排列
比如n=3,k=4
输出231
=====================
判断是否是一个二叉搜索数
节点的左子树只包含小于当前节点的数
节点的右子树只包含大于当前节点的数
所有左子树和右子树自身必须也是二叉搜索树
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
输入:
2
/ \
1 3
输出:true
输入:
3
/ \
1 6
/ \
5 4
输出: false
解释: 输入为: [3,1,6,null,null,5,4]。
根节点的值为 6 ,但是其右子节点值为 4 。
14. 反问:我有哪些可以提高的地方?请问您是做什么相关事务的?



二面

1. 介绍项目,结合项目问了 拉格朗日松弛算法,迪杰斯特拉算法
2. 浏览器输入了https://www.toutiao.com 的整个过程
3. 证书在ssl过程中的作用
4. 三次握手的过程中有哪些攻击方式,举例子
5. 网络通道非常拥塞时,TCP如何保证数据可以正确到达对方
6. 拥塞控制详细过程讲一下
7. 四次挥手过程原因
8. 应用程序如何将数据从网卡上面读取到进程当中
9. 同步IO和异步IO
10. reactor模型
11. IO多路复用
12. Linux中有那些多路复用方式
13. 进程的几种状态,CPU如何在这几种状态中调度
14. 线程池的七大参数
15. 核心线程数 和 最大线程数的作用和使用过程中的变化
16. 讲一下volatile
17. 原子类的实现方式
18. 讲一下锁的AQS的实现方式
19. 讲一下知道的一些锁
20. 算法题(给了我两道题,然后选一道来做)
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。
输入: 1->2->3->4->5->NULL, k = 2
输出: 4->5->1->2->3->NULL
解释:
向右旋转 1 步: 5->1->2->3->4->NULL
向右旋转 2 步: 4->5->1->2->3->NULL
输入: 0->1->2->NULL, k = 4
输出: 2->0->1->NULL
解释:
向右旋转 1 步: 2->0->1->NULL
向右旋转 2 步: 1->2->0->NULL
向右旋转 3 步: 0->1->2->NULL
向右旋转 4 步: 2->0->1->NULL
=================
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
输入: [1,2,3,null,5,null,4]
输出: [1, 3, 4]
解释:
1            <---
/   \
2     3         <---
\     \
5     4       <---
21. 反问:我有什么可以提高的地方嘛?

三面

  1. 策略模式

  2. 阻塞队列的Java API有那些

  3. 代理模式的API

  4. AOP解决了什么问题

  5. MySQL事务提交的过程

  6. redo log 和 undo log 实现了什么功能

  7. 完全解释一下ACID的意思

  8. 举例说明不可重复读

  9. 设计题:一个应用程序会写两个数据库,保证这两个数据库的操作满足原子性(随时存在宕机的可能性)

  10. 设计题:线上有一个服务调用十分缓慢,要如何排查?

  11. 操作系统为什么要设置用户态和内核态

  12. 详细描述一次IO过程

  13. 讲一下DMA的作用

  14. 一面、二面、三面有那些你比较擅长但是没有问到的点

  15. 算法题:

滑动窗口的最大值
限定语言:Javascript_V8、Python、C++、Javascript、Php、C#、Java
给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。
例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5};
针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4,2,6,[2,5,1]}。
反问:能不能评价一下今天的面试情况

(其实三面我一度以为自己挂掉了,两道设计题都答不上来,算法题只有一部分思路,并没有把他写完。但是没想到面试官最后还是说给我过了,希望我更多的去做一些项目,有更多的编码量。总之感谢面试官能够相信我吧!)


更多模拟面试

全部评论

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

相关热帖

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

近期精华帖

热门推荐