字节跳动 上海搜索实习 一二三面(已OC)
杭州某双非 科班 大三
一面(1h)
-
MySQL 索引(聚簇索引和非聚簇索引)
-
MySQL联合索引最左匹配原则
-
谈谈MySQL四个事务隔离级别
-
读未提交
-
读已提交
-
可重复读
-
串行化
读已提交和可重复读是如何实现的
读已提交:读数据不加锁,修改数据时加行锁,直到commit后才释放锁,其他事务必须等待该事务commit解锁后才能读到修改的数据。
-
可重复读:MVCC 乐观锁思想 维护版本号使得读写不冲突
-
MySQL幻读现象以及如何解决
-
操作系统内存管理机制。为什么要引入虚拟内存?
-
虚拟内存与物理内存的转换
-
程序代码段和数据段的存储位置
-
进程内存中堆和栈的位置
-
malloc时分配堆空间,堆地址一直增大会出现什么情况
-
mmap了解吗,映射到内核区还是用户区?为什么是内核区?
-
free buffer cache(不了解)
-
Go的内存管理,和操作系统的内存管理有什么区别?
-
Go垃圾回收,三色标记。为什么需要三色标记?
算法题
-
标题:1-n数字字典序第k大
描述信息:给你一个数字n(n < 1e9), 再给你一个数字k(k < n), 要求你找到1, 2, 3, ... n按照字典序排序后, 第k大的数字;
如, n = 15, k = 7;
那1 ~ 15按照字典序排序为: 1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9;
-
相交链表
-
二面(1h)
-
介绍一下红包雨项目
-
限流是怎么做的?为什么选用令牌桶?令牌桶并发问题是如何解决的?
-
防作弊是怎么做的?具体实现
-
你开源贡献上写的rosedb与其他数据库相比有什么不同吗,或者类似的数据库
-
你有参加过ACM等类似竞赛吗
-
HTTP和HTTPS
-
GET和POST区别
-
TCP建立连接过程
-
Go和C++的区别
-
Go协程的理解,和线程之类的区别
-
算法题:
给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。
输入:num = "1432219", k = 3 输出:"1219" 解释:移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。
三面(35min)
-
闲聊(考研,base倾向)
-
你做这个orm框架的动机?
-
红包雨项目team分工,哪里了解到这个训练营的
-
训练营有上课吗,哪个部门举办的,最后评分标准
-
写题
-
手写http请求报文
-
给你一个字符串,返回其中最长连续字符的子串(不区分大小写)
例如 s=“abccccdddDDD”,返回“dddDDD”
-
- 什么时候能来