字节后台三面面经
记不清每一面问啥了,就按知识点分吧
Java
- JVM内存区域
- HashMap、CurrentHashMap
- String, StringBuffer, StringBuild三连
- GC算法
- 复制算法为什么需要2个Survivor空间, 1个不行吗
- survivor空间不够怎么办
- volatile作用
- synchronize底层
- 可重入锁底层/AQS底层
- LRU底层实现
Redis
- Redis的对象结构
- 实现对象的底层数据结构
- SDS优点,链表、跳表的实现与复杂度
- 有序集合的底层 -字典与跳跃表 为什么用这两个结构
- Redis为什么快
- RDB AOF优缺点,怎么选择
Linux/操作系统
- 内核态和用户态的切换
- 查看CPU使用率的命令
- select poll epoll三连
- 虚拟内存的作用
- CPU二级缓存
网络
- 从输入url到显示网页过程, HTTPS的认证, DNS解析过程
- TCP三次握手,两次握手有什么问题
- TCP UDP区别
- TIME_WAIT作用
- 如何快速复用处于TIME_WAIT的连接? 不懂
数据库
- Mysql索引 hash和btree什么情况使用
- B+数优点,为什么不用红黑树
算法
- 排序一个字符串 时间要求O(n)
- 最大正方形面积(不会换题)
- 奇数上升偶数下降的链表排序 空间要求O(1)
- 给一个有重复数字的数组,求集合{(a,b,c) | a+b+c=0}
祈愿offer