百度提前批
Timeline
8.30 一面
9.3 二面
一面
可能约面较晚,所以面试官态度不是特别好,面试体验糟糕
没有录音,只能记个印象
问答
- 你认为语言重要不重要?
- 学习一项新东西怎么入手?
- 要你设计一个分布式系统,分布式系统要考虑的要素有哪些?(CAP?)
- 解释下 ZAB 协议(忘记了,Leader 将事务请求广播给所有 Follower ,Follower 记录完日志之后,向 Leader 发送ACK,收到超过半数的 ACK,则提交事务)?
- ZK 是 AP 还是 CP(答的 CP,网上众说纷纭,uu们可以发表下看法)?
- At Least Once 机制同层面的还有什么机制(我说 one-way,面试官说不是这个意思,查了下是 at-least-once\at-most-once\exactly-once)?
- 解释一下 AICD(解释C的时候,我说C是保证数据的完整性和正确性,面试官说那和A有什么区别,我解释,他仍然这么说。我也许需要解释下如果只有 A ,为什么无法完成 C,A 只能对事务回滚,没有 I D,不能保证事务能够正确地执行)
- 在 Java 中自定义一个非 java.lang 包下的 String 类,构造函数输出 hello ,创建这个 String 类对象,会成功输出 hello 么?(回答的不会,因为双亲委派机制,但是下来仔细想想之后,感觉应该不是我想的那个原因,有了解过的uu,可以帮助解答一下)
- RDB
- set a = 0
- 开启 RDB
- set a = 1
- 关闭 RDB
- 写时复制是 REDIS 实现的还是操作系统自带的?(fork采用写时复制机制)
- 联合索引(a,b,c),SELECT * FROM table1 WHERE a = 0 AND c = 0; 该语句会不会走索引?(a能走索引)叶子节点存的什么?(要分主键是什么,如果不是(a,b,c),那就是非聚簇索引,存放的就是主键,如果不是就是聚簇索引,存放的就是数据)
c 能成功运行么?(我认为可以,只不过c不会被存到快照里而已,RDB是子进程和主进程不影响,通过写时复制完成)
手撕
- 手写死锁
- 到最近的人的最大距离 leetcode849
反馈
说我掌握东西都是到 80,没有一项到 100 的,但是又说 80 是能满足日常工作了。
不清楚什么意思,希望能过吧。
二面
- Kafka 为什么比 rocketMQ 的吞吐量更高?
- go 和 java 区别?
- go 的内存模型和协程模型?
- gmp?Processor 为什么要有一个自己的队列(减少对协程调度的竞争)?
三个手撕