4399|Java后端开发工程师|一面
投递时间线:10.14 简历投递 10.16笔试 10.25一面
java
- 如何查询死锁。(答了jvisualVM线程dump查看 ,面试官追问有没有相关的包,类)。
jvm
- jvm调优步骤,举两种情况。
- 垃圾回收器选择,CMS原理。
- jvm内存模型,各部分作用。
- 类加载过程,几种类加载器介绍。
mysql
- 死锁解决(三种)。
- 为什么不给每一列创建索引。(增加创建和修改资源消耗、有些列不适用索引)
- innodb为什么使用b+树,什么时候使用hash(自适应哈希索引)。
- 对于几亿行的表如何迁移备份。(答了停机迁移和双写方案)追问具体步骤,以及备份每一行的操作。
- mysql分表方式,订单表是该用水平分还是垂直分。水分平分表的优劣,水平分表后如何连表(做标记)。
并发
- 线程池作用和参数,阻塞队列的作用。为什么是先添加队列而不是先创建最大线程。
spring
- spring单例是否存在并发安全问题,如何解决。
中间件
- 项目中如何用的kafka。
- redis如何保证缓存一致性。
操作系统
- 死锁的条件,如何避免死锁。
- 多个线程请求同一个资源有哪些分配方式。
情景题
- 如何提升项目访问性能。 (jvm调优,加缓存,索引)
- 如何统计几亿用户的每日在线时间,不让存db,考虑用户客户端崩溃等各种情况。
总结:八股答得磕磕绊绊, 情景题完全没思路,面完就感觉凉了。面试官比较喜欢抠细节,会一直追问,是一次有价值的面试经历。
#24届软开秋招面试经验大赏#