字节跳动后端data实习(已offer)
11/16 下午两点投的简历,三点就被捞了,然后立刻约的下周面试
一面
总时长 1h
面试官自我介绍,我自我介绍
20min 项目, 15min 数据库和网络,20min 算法
什么时候开始写代码的
聊了工作室工作内容,聊了一下 oj 内部实现,我说了下我开的那个 pr
聊了参加过的程序设计竞赛,说了一下这个场景理解以及我获奖代码里面的缓存批量提交模型
聊了自己写的数据库,说了为什么使用 B 树,以及为什么在 mysql 里面用 B+树,mongodb 用 B 树
聊了自己写的实时通信应用,说了基本的架构,上线下线,群发消息的实现
数据库事务隔离级别,哪个用的多,使用场景,可重复读——mysqldump --single-transaction
可重复读和读已提交的区别,可重复读的实现原理
TCP 如何实现可靠传输,拥塞控制
算法题: TOP-K(嘴过的),判断平衡二叉树
用过什么语言(什么都用)
未来的规划
有什么要问我的?
二面
(一面第二天)总时长 45min
25min 项目,8min Java,10min 数据库,2min 算法
自我介绍
了解过 RPC 吗,了解过微服务吗(起手就是一句不了解)
挖项目程序设计竞赛场景,文件读写,并发控制,处理策略,记忆化。此处关于无序消息处理拓展了很多,我仔细说了一个之前比赛使用过的时间桶模型
线程池任务满时新任务处理策略
如何自己实现一个线程池
实时通信项目中的消息加密怎么做的
对称加密原理
AQS,锁,Synchronized,CAS,如何自己实现一个通用的 equals
你是怎么为数据库选主键的
复合索引索引选择
如何排查优化慢查询
索引失效如何解决
算法题:数组中的 0 全部放到尾部,不改变其他元素顺序(冒泡就完事,写了一分钟)
比赛中都是组队的吗?(部分 SOLO,部分组队)
有什么要问我的?
三面
(二面第二天)总时长 40min
工作室项目,开源 OJ 用的 Django 框架,干了什么事,用的什么服务器,服务器的作用
IO 方式,BIO,NIO,AIO 区别
epoll 实现原理
python、java 用什么访问数据库
jdbc 全称,作用
数据库有几个部分
连接器,分析器,优化器,执行器,存储引擎作用
了解那些存储引擎,支持的索引结构,区别
一般索引高度多高,(16KB 一页,然后算一下就可以了,MySQL 一般是千万量级的)
作为 C 端用户,访问 toutiao.com 直接返回 err,应该如何排查错误
算法题目:字符串 abcdeabc 包含字符 d、e、a 的最短子串长度
有什么要问我的?
HR 面
(三面下一个工作日)
聊生活,聊团队合作,聊业务,聊职业规划,待遇,发 Offer