Java 5 年经验面试记录
希音
一面 (过)1个小时
- 开发过的组件有哪些
- xxl-job和spring schedule为什么选择xxl-job,详细描述xxl-job任务执行的流程。
- 使用过的设计模式有哪些?享元模式用于什么场景,使用享元模式有什么好处?工厂模式为什么会经常和策略模式一起使用?策略模式是否可以单独使用?桥接模式的类图是什么样的?
- 分布式ID的实现算法,了解哪几种?使用分布式ID和自增ID的区别是什么?
- B+树结构,为什么不使用跳表?
- 讲一下HashMap扩容的流程?
- 使用的GC垃圾回收器是什么?讲一下垃圾回收的流程。描述一下对象标记的过程。除了可达性分析还有什么标记垃圾的算法?有没有了解过其语言的垃圾回收过程。
- 数据库有哪些隔离级别?RC和RR的区别是什么?从RR更改为RC有什么优点?什么是幻读?间隙锁用来做什么的?使用了间隙锁之后一定不会产生幻读吗?间隙锁的加锁流程是什么?select * from table where id > 1000,这个时候在1000之后插入数据会加间隙锁吗?为什么?
- 讲一下CAP理论?分区容错性和可用性之间有什么区别?使用redis时,应该考虑CAP中的哪些?
- 讲一下Redis key过期策略有哪些。
- Redis的内存淘汰有哪些?默认策略默认是什么?
- Redis中的LRU实现原理是什么?
- 什么是RPC?为什么用RPC?怎么实现的RPC?和http的使用场景有什么区别?
- 四次挥手如果最后一个包丢失了会怎么处理?
- time_waited为什么是2个MSL?
二面(N)
- 自我介绍
- 1~3年的规划
- 对团队的期望是什么
- 最有价值的项目是什么
- rocket MQ怎么保证幂等性
- rocket MQ 怎么保证不丢失
- 线上容器数量,为什么这么配置
- redis怎么使用的?
虎牙直播
一面(过)50分钟
- 自我介绍
- JVM启动流程
- CAS
- 线程和进程的区别,协程
- hashmap 和 hashtable
- gc 算法
- jvm 调优
- redis 数据结构
- redis 中 String 的实现
- 遇到的困难
- sql 优化
- 搜索系统设计
- lrucache
二面(N)30分钟
- 自我介绍
- 做过最能证明能力的项目
蜚美网络
笔试题
- 联表查询平均工资大于20000的部门id,给了一个工资表和员工部门表
- 索引什么时候失效?一个联合索引查询sql问索引是否失效
- 子类继承父类,new子类写打印语句顺序
- 单链表删除链表中某个值
- 设计题
面试题
- 根据索引失效那道题一直往下问
- 为什么是最左匹配
- B+树结构
- 什么时候会加表锁
- 间隙锁
- 分布式事务TCC,2PC
- 秒杀系统设计,一直问每个步骤的细节
- cdn缓存
- ng的一些配置
- new一个对象的过程