百度面试 2023.02.13
大约 4 分钟
百度面试 2023.02.13
2023.02.13 百度一面
- 自我介绍/项目经历
- 项目的背景和主要工作, 梳理项目的实现思路
- Redis
- Redis 用了哪些数据类型?
- Redis 持久化策略选型?
- RDB/AOF 的优点和区别?
- Redis 缓存击穿/雪崩的防止?
- 怎样保证数据一致性?
- 除了先删后改还有什么保证一致性的方法?
- Kafka 怎样保证整个链路上消息不丢失?(不能只回答 Kafka 的保证)
- Kafka 本身
- 消费者手动 ack
- 生产方 retry + error log 恢复
- Java JVM 类加载机制和时机?(忘了回答时机了)
- 回答了三种 ClassLoader 机制 + 小项目使用 URLClassLoader
- 数据库
- MySQL 索引和事务的理解?(事务没答好)
- 说一下 MVCC 的理解和实现?(没看过基本上)
- 算法
- LRU 实现, 数据结构和方法
- 数组, 有正负元素, 求最大子集合(最大的元素和)(动态规划)
面评: 整体还行, 算法和数据结构 + 数据库可以多看看
2023.02.14 百度二面
- 自我介绍/项目经历
- MySQL
- MySQL 索引类型?
- B+ 树索引的底层详细设计?
- 为什么使用 B+ 树而不是 B 树?
- Count(1) 和 Count(*) 的区别?(没区别)
- 用过多节点数据库部署吗?
- Redis
- 项目中 Redis 怎么用的?
- 验证码用 Redis 什么结构存的?
- 如果用户数量过多验证码太多怎么办?(hash 大 key 的解决?)
- 验证码还能用别的方式存吗?
- 验证码怎么配置过期时间?
- Hash 能对每个 HK 进行超时处理吗?
- 原生命令怎么对每个 HK 设置超时?
- Redis 应用多还是原理了解多?
- Redis String 的底层原理?
- Redis String 类型如果存数字是怎么存的? 和 String 有区别吗?
- Redis 持久化策略?
- Redis 集群有一个节点挂掉了, 怎样将挂掉节点的数据同步到新增节点上?
- 备份过程中新增的数据怎样给到新增节点?
- SpringBoot
- SpringBoot 实现单例的方法?
- Enum 类型可以实现单例吗? 是什么原理?
- SpringBoot 自动注册的机制?
- itext 是怎么使用的, 商业化线上使用有经过授权吗?(差点出大问题)
- MQ
- 用过哪些消息队列?
- 用 Kafka 的目的是什么?
- 项目中怎样保证 Kafka 消息时序性?
- 怎样保证 MQ 严格的时序性?
- 高并发怎样保证严格时序性, 不能用单个 Partition?
- 怎样用 Redis 实现消息队列?
- 不用发布订阅模式怎样实现消息队列?(呆逼答了 zset)
- 有没有比 zset 更好的实现方式?(答 list)
- 为什么 list 消耗比 zset 小?
- Redis
- Redis 有事务吗?
- Redis 怎么实现事务的?
- 命令行里用过 Redis 的事务命令吗?
- Redis 怎样实现全局锁? (LUA 原子性更改)
- 多线程读的时候, 上述的操作还是原子性的吗?
- 进程和线程的区别?(上面对 Redis 进程和线程的了解不够好)
- Redis 同一 1ms 多个请求的读是多线程还是单线程?
- 有了解过 setnx 命令吗?(全局锁用这个, 可以看看)
- 算法
- 100w 用户, 按年龄排序, age = [1, 100], 时间复杂度 O(n). (复杂度 O(n), 一眼桶排序)
2023.02.16 百度三面
- 自我介绍
- 工作室
- 工作室分享会分享了什么东西?
- 分享完之后大家的反馈?
- 三创赛
- 创意是什么?
- 创意是谁想出来的?
- 分工?
- 编程学了多久?
- 编程学习经历?
- 语言
- Java 和 Go 更擅长哪个? 更喜欢哪个?
- 为什么 Go 比 Java 简洁?
- 为什么觉得 Go 更好不去找 Go 的工作而找 Java 的?
- 项目
- 命令行插件的初衷是什么? 解决了什么问题?
- 为什么选择用 Java 写而不是用 Linux 命令行之类的?
- 命令行写完之后干了些啥? 是只写完就结束了吗?
- 开源仓库有多少 Star?
- 平时关注开源项目吗?
- 项目都是在学校做的吗?
- 本科还是研究生? 介绍一下工作室?
- 参与了哪些项目?
- 场景题:
- 商品平台, 购买, 库存扣减的设计?
- 消息队列异步下单处理真的可以提升用户体验吗?
- 上面的方案下单失败怎么办?
- 强一致性场景能这么做吗?
- 怎么改进? 下单过程真的适合做异步吗?
- 订单和支付的逻辑保证?
- 到底是先生成订单还是先支付? (先订单再支付)
- 下单和支付是一个请求还是两个请求?
- 微服务无法用事务, 怎么解决? (订单状态字段的状态机)
- 做项目过程中的难题?
- Shiro 集成 JWT
- Redis + LUA 实现原子性库存的查询和扣减, Win redis-cli 命令 bug
- 反问:
- 面试评价? (评价都分小问题聊到了, 自己觉得咋样?) (答:真实业务考虑不足, 回复: 理解到位)
- 面试流程, 一共几面? (三面)