字节跳动校园实习面试


字节跳动校园招聘面试 — 后端开发实习生-懂车帝

12.5一面

  1. 自我介绍,说自己是第一次面试(面试官说和第不第一次没关系)

计算机基础相关

1.介绍一下数组、链表和栈

2.优先队列了解吗?底层是怎么实现的?(应该是二叉堆,我说我推测是hash表,把元素和优先级对应存起来)

3.看你简历上说了解操作系统,进程线程的区别是什么?(资源和开销)接着又说举例说明两种的应用场景

4.进程线程的通信方式(管道,共享内存,消息队列)

5.介绍介绍线程安全?(我说太宽泛,能不能具体一点)

6.什么会造成线程不安全?(举了读写的例子)

7.了解虚拟内存吗?介绍介绍底层原理?(胡编乱造)

8.虚拟内存怎么实现换入换出?(我没get到,就说了页面,和页面中断)

9.介绍页面置换算法(fifo,lru,opt,lfu)

10.那介绍一下lru的底层实现?(应该是栈,我说可以用一个位图加一个时间衰减函数)

计算机网络相关

  1. http的状态码(每个大部分都介绍了一下,说自己常见200,404和500)
  2. 问出现500该怎么办(我说大部分是服务端原因,基本是没有按规定返回数据,查看js的调用和服务端相关函数的运行)
  3. http和https(密文,ca,非对称加密和对称加密)

数据库相关

1.平时用索引吗?什么时候会用?

2.聚簇索引和非聚簇索引

3.索引为什么更快(b+树更矮,遍历次数少)

4.redis基本的数据结构(我说到了bitmap)

5.他问我什么时候用到了bitmap(说了下应用场景)

算法

比较版本号大小。

2.4 和 2.5 -1

2.4和2.4.3 -1(2.4与2.4.0一样)

2.4和2.0004.2 -1 (0无用)

2.4和2.40000.2 -1 (0无用)

25.2 和 3.2 1 (有多位数)

我想了想就按照长度较短的同时遍历两个字符串,用两个整数来表示每次.之前的数,每次遍历到不是“.”,就把整数乘10再加这个数,这样就能有效去除无效0。而且只要比较出一个小部分的整数大小,就能判断整体的。

然后再遍历长度较长的字符串剩余部分,下一个点之前的数继续和较短字符串的最后一个数比较;下一个点之后只要能找到大于0的数就可以判断较长数组更大,否则相等。

没写完,面试官说思路可以。

反问

懂车帝还要开发啥新功能吗?每周迭代

对实习生的要求?我能进吗?希望是有潜力有热情的年轻人,客套的说我还不错。。。

不同面试之间的区别?(侧重点不同,一二面更重要)

面试体会:简历上不写操作系统了以后。


  目录