帆软面经
一面
聊聊 JWT?
JWT 有啥风险?
堆和栈是啥结构?
封装、继承、多态,都用在啥地方?
ACID 是啥?
有没有满足原子性,但不满足一致性的场景?
Java 里常用的锁有哪些?
Top K 问题怎么做?时间复杂度 O(N) 的解法?
用生成 1-5 随机数的函数,怎么等概率生成 1-7?(追问二进制思路)
怎么判断一个数是不是 2 的 n 次方?(追问二进制思路)
有啥想问我的?
二面
WebSocket 和 HTTP 有啥区别?
WebSocket 怎么实现催单?你是咋做的?
聊聊 Spring 的 IOC 和 AOP?
IOC 容器的初始化过程是啥?
AOP 怎么实现字段填充?它咋知道要改哪个类?
Redis 的 Hash 和 String 都用在啥地方?
Spring Cloud Gateway 有几种过滤器?怎么用它做限流?
订单超时问题怎么解决?还要考虑高性能和高可用。
线程池的核心参数有哪些?
如果有优先任务,线程池该怎么初始化?
这么做可能会有啥问题?
怎么解决任务饥饿的问题?
数据库怎么保证原子性?
MVCC 保证了啥特性?(送分题没答对)
算法题:找出一个数组里只出现一次的数。
算法题:两亿数据怎么排序?
算法题:两亿个在 10000 到 20000 之间的数,怎么排序?
三面
算法题:汽车加油问题(类似过河跳石头),贪心解法?
如果非要用 DP 解,题目得怎么改?
怎么用位运算判断一个数是不是 2 的 n 次方?
HashMap 在并发下有啥问题?
`ConcurrentHashMap` 是怎么解决的?
常用的锁有哪些?
`synchronized` 为啥不直接叫 `lock`?
`synchronized` 和 `volatile` 有啥区别?
怎么自己实现一个自旋锁?(用 CAS, Atomic*)
CAS 是怎么实现的?
ABA 问题是啥?
解释下啥是“同步”?同步的到底是啥?
聊聊职业发展、规划、技术学习这些。