字节跳动校园招聘面试 — 后端开发实习生-懂车帝
12.5一面
- 自我介绍,说自己是第一次面试(面试官说和第不第一次没关系)
计算机基础相关
1.介绍一下数组、链表和栈
2.优先队列了解吗?底层是怎么实现的?(应该是二叉堆,我说我推测是hash表,把元素和优先级对应存起来)
3.看你简历上说了解操作系统,进程线程的区别是什么?(资源和开销)接着又说举例说明两种的应用场景
4.进程线程的通信方式(管道,共享内存,消息队列)
5.介绍介绍线程安全?(我说太宽泛,能不能具体一点)
6.什么会造成线程不安全?(举了读写的例子)
7.了解虚拟内存吗?介绍介绍底层原理?(胡编乱造)
8.虚拟内存怎么实现换入换出?(我没get到,就说了页面,和页面中断)
9.介绍页面置换算法(fifo,lru,opt,lfu)
10.那介绍一下lru的底层实现?(应该是栈,我说可以用一个位图加一个时间衰减函数)
计算机网络相关
- http的状态码(每个大部分都介绍了一下,说自己常见200,404和500)
- 问出现500该怎么办(我说大部分是服务端原因,基本是没有按规定返回数据,查看js的调用和服务端相关函数的运行)
- 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的数就可以判断较长数组更大,否则相等。
没写完,面试官说思路可以。
反问
懂车帝还要开发啥新功能吗?每周迭代
对实习生的要求?我能进吗?希望是有潜力有热情的年轻人,客套的说我还不错。。。
不同面试之间的区别?(侧重点不同,一二面更重要)
面试体会:简历上不写操作系统了以后。