介绍项目(华为数据库比赛),简单问比赛相关问题(怎么控制并发,涉及事务没有)
介绍Mysql数据存储原理(B+tree)
用B+Tree有什么好处,和BTree有什么区别,为什么Mysql用B+tree不用Btree(范围查询)
Mysql事务隔离级别,了解幻读吗,用哪个隔离级别来避免幻读
介绍个人项目,分布式数据库,怎么处理脑裂问题(Raft协议选举)
介绍一个中间件,选择了Kafka
Kafka怎么解决分布式共识(Zookeeper)
Java volitale介绍,内存可见性和指令重排序,为什么要进行指令重排序,volitale和syncnized区别
介绍Java垃圾回收方式和垃圾回收器
为什么用标记清除和标记复制算法
做题写单例和数组归并,问为什么用双检查和问如果链表多路归并怎么做,讲思路和复杂度
讲Web项目,建了什么表,用了Mysql哪些特性,为什么用InnoDB
Myysql写入大量数据的场景怎么办
Mysql隔离级别,幻读怎么解决,除了开串行化级别还有什么方法
Mysql有几种锁,解释下MVCC
Mysql写入数据的过程
Mysql一行数据怎么存储
Java ConcurrentHashMap原理,用的什么锁,读的时候需要加锁吗
Java 讲下可重入锁
讲下Github上的个人项目,讲下Raft算法,你是用什么方式通信的(RPC)
你用的什么RPC,讲下RPC的原理
Go语言的map并发安全吗,用什么替代
讲下Go语言的interface,怎么判断一个interface的类型
协程调度了解吗,协程和线程的区别
线程的栈是个什么概念,堆又是个什么概念
三次握手,讲下timewait
进程间通信的方式
epoll有了解吗,如何设计一个高并发的后端
B+Tree知道吗
做题:整数字符串转二进制
闲聊了一会,都看什么书,答DDIA和垃圾回收算法, 讲下Java和Go的垃圾回收算法
Go的三色标记了解吗
继续闲聊
全程问简历上的项目和比赛经历,都讲了一遍
问Bitcask和LSM-tree的对比
对分布式领域有什么看法,分布式最需要解决什么
怎么实现分布式一致性,又讲了一遍Raft算法
客户端怎么发现结点的leader
你的学习方法是什么
有没有看过什么源码
做题:统计一个英文文档的每一行最后一个单词的出现频率,写完又问如果是大数据量下内存不够怎么办,答mapreduce(被否定不能用,只能扫描一次文件),又答分块读取,缓存最后一个单词,判断换行符
撕上面那道题的代码,让写出所有异常情况的处理,怎么得到每行最后一个单词,各种细节,最后提示用正则表达式,我表示忘记怎么写正则了,于是跳过这个点
问上面那个算法的时间和空间复杂度
对于未来两年的职业规划
讲下最能代表你水平的项目/比赛
讲下mmap写入的流程,越细越好
狂撕mmap的各种细节
filechannel和mmap的差异,为什么不用filechannel
pagecache刷盘策略,磁盘调度策略
还有没有什么能代表你水平的东西讲下(讲了实现Raft协议)
Raft协议长期的网络分区会有什么问题,怎么解决, 实现的协议TPS测过吗
讲下存储引擎,介绍了下Bitcask
Kafka的存储结构讲下
操作系统了解吗 TCP的close wait 讲下 怎么写代码模拟大量的close wait
分布式扩容怎么实现(一致性哈希)
Java线程池讲下,JDK源码看过没(没看过)
对存储领域的看法
对自己的职业规划
总结:阿里云MQ面试很硬核,问的很细节,很深
了解线程池吗,详细解释里面每个参数的含义
线程池的大小应该设置为多少合适
Netty性能高的原因解释下
Mysql的索引是什么结构,为什么用这个结构
讲下CAP理论,zookeeper满足什么,数据库主从模式满足什么
讲下LSM-Tree,为什么levelDB的磁盘文件要分层
分布式事务了解吗,讲下
TCP的可靠传输靠什么保证,流量控制呢
GPA是多少,为什么转专业,怎么学习专业课的
刷过ACM吗,表示后面做题会比较难,力扣困难级别