京东一面 — Java后端开发
2022.04.12
视频面试 1h
项目:
- 介绍一下你做的这几个项目?
- 为什么采用RabbitMQ?理由是什么?
- 为什么进行分库分表?数据量多大?分库分表带来了哪些问题?
- 为什么采用Forest框架?它和SpringFeign有什么区别?
- 分库分表是如何实现的?说一说SharedingJDBC?
RabbitMQ:
- RabbitMQ的好处是什么?为什么不采用其他的消息队列?
JVM:
- 介绍一下垃圾回收机制?
- 如果堆溢出了怎么办?
- 介绍一下JVM,包括哪几部分?
- 运行时数据区包括哪几部分?
Java集合:
- 使用过哪些Java集合?介绍一下?
- ArrayList和LinkedList有什么区别?有了解过源码吗?
- LinkedList做查询时会存在什么问题?为什么?
- HashMap的初始长度?
- 了解过HashMap的源码吗?
Java多线程:
- 在实际中使用过Java多线程吗?Java多线程中有哪些关键字?
- Synchronized和Volatile的区别?
- 线程的状态有哪些?
- Sleep和Wait的区别?
- Sleep执行后进入什么状态?Wait执行后进入什么状态?
- 一般用什么方法来结束线程?
Linux:
- 一台服务器可允许的最大连接数?
- 做负载均衡的时候采用的是什么方法?如何分发请求?
- 容灾备份的时候有考虑过MySQL数据库之间数据的一致性问题吗?是如何解决的?
Redis:
- 缓存穿透?解决方案?
- 缓存雪崩?解决方案?
- Redis的数据结构包括哪些部分?项目中使用到了哪些?
- Set和Zset之间的区别?
- Redis是单线程还是多线程的?为什么?
Spring:
- Spring中Bean的生命周期?
- Spring中的事务包括哪些?在实际项目中有用到过吗?
MySQL:
- 介绍一下B树和B+树,为什么MySQL采用B+树索引?
- B树、B+树的结构是怎样的?有什么区别?哪种结构好?结合具体场景说明?
MQTT:
- 详细说明MQTT和其他消息队列的区别?优点?缺点?应用场景?
反问:
- 贵部门技术栈?
- 一共几面? 3面