字节跳动后端基础架构123hr(已oc)
我是java的 进去后转go
一面(50min)
一.项目用了es es为什么快
倒排索引 用了分词 索引命中率
2.编译原理(这个不太会)
只说了编译原理的5个过程 然后说学得不好
3.各种锁 印象深刻 cas volatite 公平锁 非公平锁
cas就是旧值判断 常见aba错误
volatite 同步的三个性质满足两个 有序 和 可见
具体有序是 汇编代码加 lock
可见是压入工作内存
4.bio nio
bio一个进程 or 一个线程 一个socket
nio一个进程 多个 socket
linux 发展和现在使用
select poll epoll
select底层bitmap poll双向链表 epoll红黑树 单向链表
具体检索效率上分析 还有 内核内存移动大小(具体可以查阅相关资料好多不打了😂)
5.mysql索引 b+树 常见索引结构 经典问题
只要理解b+树底层模型就好了 页内单向链表 页间双向循环链表 页内有页目录索引(类似hash函数)
6.hash消除 常见办法 (自己再胡扯了一下渐进hash的好处)
7.红黑树 查阅相关资料理解模型就好了
8.算法题 两次二分 一次二分 的结果用于下一次二分
没原题😂 时间log n 空间 1 (条件好难)10分钟没写完,面试官要开会了。 后面自己写了
觉得我怎么样
技术很不错 😂
二面 (30min面试 40min吹水)二叉树左视图(3分钟写完)
问项目忘记啦
1.内存存储模型 3种 linux用的 和 intel cpu 支持 具体查资料哈 或者评论问问 我后面写一下
2.进程通信哪个快
5种进程间通信 分析是否有 cpu状态(内核 用户)切换等 进行速度分析 共享内存最快
3.top k场景题 秒答 优先队列 维护k大小堆 log n优化到log k
4cc cv操作系统过程 用户内存内核内存xxx具体查阅资料
5.计网4次挥手 每个状态是什么
为什么 4次
2ms两个原因
6.顺手问了mysql索引 b+树经典问题理解b+树就好了
7.inoodb(忘记怎么拼了) 事务四种隔离级别的实现
mvcc机制 next key解决幻读 可重复度隔离级别实现解决 不可重复 具体可以看我之前的一篇博客(3000多字)介绍了mvcc是怎么实现各种隔离级别和mvcc本质数据结构和实现原理
《MVCC简单易懂总结(如何实现读已提交,如何实现可重复读,幻读是什么)》, 一起来围观吧 https://blog.csdn.net/m0_52199015/article/details/124089877?utm_source=app&app_version=5.3.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
开始反问:我怎样😁
面:非常优秀(震惊)(骄傲一下,我是六边形战士),期待我加入他的团队 (不还有三面吗😂) 不足:缺少生产经验(没有实习过唉),但是也可以理解毕竟没有工作过 然后就讲讲工作干什么 工作的时候怎么学习 可以准备一下三面了😂
三.三面(上强度了,估计是二面太好了,三面就跟你讲讲计算机发展史😭,50 min)
1. 0 1最大正方形dp 动规
2. 二叉树B的是否是A的子树 dfs 内套 dfs
两题10分钟左右写完
3.kafka底层存储模型,好在哪里?????(好难)
讲了零拷贝 然后讲os拷贝从4次状态切换4次拷贝 到两次状态切换两次拷贝 的优化过程(4个阶段)
零拷贝中硬件做了什么操作系统做了什么?(我废了,变傻子)
4.数据从磁盘到用户内存 磁盘做了什么 cpu做了什么
内核内存做了什么 内核中有什么单元又做了什么(救命😂)大概答了点,不说了,太拉了
5. 赋值os做了什么 不同进程间赋值会有什么问题(终于有个会的) 具体了解os虚拟地址 物理地址 等知识
6.最近看啥书(准备考试刚考完三科) 几周前看算法分析与数据结构(黑书)
反问:我怎么样?
面:还是很不错的,但是沉淀还是不够(我也才学了三年,确实没啥沉淀(大一摆了一年))
讲讲团队干啥xxxx
四.hr面 聊人生(我们是中国新时代青年,我们将自强不息😁)
具体还是比较流畅的面试体验也很好,也发现了自己很多不足吧,具体疑问评论哈😁
大家加油,一起努力
#面试复盘##字节跳动内推#