0%

京东零售-平台产品与研发中心一面凉经

部门:京东零售-平台产品与研发中心
30min,拷打简历,面试官人挺好的
面试后第四天,已挂

自我介绍
先聊天,问最快什么时候能来,能来多久(说少啦,该说6个月的)
问了我简历上的竞赛项目做了什么(以前从没面试官感兴趣过)
问蓝桥杯是什么,山东省自己组织的吗

八股:

  1. 说一下哈希表的实现原理
  2. 为什么链表长度为8时,要转换成红黑树
    在Java的HashMap中,当链表长度≥8且哈希表容量≥64时,链表会转为红黑树;
    链表查找时间复杂度为O(n),红黑树为O(logn)。当链表较长时,红黑树显著提升查询效率;
    根据泊松分布,哈希冲突导致链表长度≥8的概率极低(约0.00000006),此时转为红黑树是权衡空间与时间的优化;
    当红黑树节点数≤6时,会退化为链表以节省空间;
    防止用户实现低效哈希算法导致链表过长,红黑树作为极端情况的保底策略。
  3. 什么情况会破坏双亲委派机制
  4. 说一下SPI和热部署
    SPI(Service Provider Interface)服务接口由启动类加载器加载,DriverManager由启动类加载器加载,但数据库驱动实现(如MySQL Connector)需由应用类加载器加载。JDBC 4.0后通过SPI机制动态加载驱动。
    热部署:开发工具(如JRebel)通过自定义类加载器直接加载修改后的类文件,跳过双亲委派。一些应用服务器(如 Tomcat)需要支持动态加载和卸载类,因此会打破双亲委派模型,允许子加载器优先加载某些类。
  5. 说一下Java内存模型JMM(发现回答的时候以为是JVM内存模型)
  6. 为什么内存模型要这么划分,以及会出现哪些问题
  7. 线程池有哪些参数
  8. 说说每一个参数是什么作用
  9. 关于锁了解多少
  10. 事务ACID特性都是怎么实现的
  11. 慢查询了解多少
  12. 分库分表了解多少,会存在什么问题
  13. Redis会丢数据吗
  14. 除了持久化的丢数据,还有什么情况会丢数据
    内存溢出触发淘汰策略、服务器断电或崩溃时,未持久化的内存数据立即丢失
  15. Redis的缓存雪崩、缓存击穿和缓存穿透
  16. 生产者消费者模型的应用场景
    消息队列
    视频直播中,生产者编码视频帧,消费者解码播放。缓冲区确保流畅性
    线程池任务队列即为缓冲区,生产者提交任务,工作线程消费执行
  17. 简单说一下IoC和AOP
  18. 没有IoC会怎么样
    需要手动new,高耦合,维护困难,冗余代码,生命周期管理复杂

项目拷打:

  1. 项目是自己学习用的吗
  2. 项目过程中遇到了哪些问题,花费了大量时间解决
  3. 继续追问我说的问题,哪些数据存redis里,哪些数据存数据库里
    Redis 是内存数据库,适合存储高频访问、临时性、低持久性需求的数据
    MySQL 是关系型数据库,适合存储持久化、结构化、事务性的数据
  4. 继续追问,如果redis和数据库同步的过程中,redis宕机了,该怎么解决
    持久化、主从复制、哨兵模式、双写、异步队列
  5. 根据我说的第二个问题继续问,除了布隆过滤器判断数据库中不存在这个数据,还有没有别的方法判断
  6. 消息如何不重复消费

主动介绍他们的部门,主要做中间件的开发
反问