实在智能二面

一、 个人背景与综合意向

- 自我介绍:请进行简单的自我介绍。
    
- 业务背景:该规则引擎主要应用于唯品会的哪些具体业务场景?
    
- 团队情况:你所在组的整体开发团队规模是多少?纯后端开发人员有多少?
    
- 实习时间:如果入职,什么时候可以开始实习?打算实习多长时间?
    

二、 Java 基础(重点考察 HashMap)

- 数据结构:请介绍一下 HashMap 内部的数据结构。
    
- 设计原理:为什么 HashMap 要引入红黑树?这样设计的根本目的和好处是什么?
    
- 底层支撑:为什么底层要基于数组加链表的形式来实现哈希表?数组的作用是什么?
    
- 哈希计算:JDK 1.8 中,哈希函数是如何计算哈希值并确定元素在桶中位置的?(扰动函数的作用)
    
- 并发安全:HashMap 是如何保证线程安全的?具体到 JDK 1.8,它是如何利用 CAS 和 synchronized 实现的?
    
- 不安全场景:在多线程环境下使用普通的 HashMap 会出现哪些具体的并发安全问题?(例如:值覆盖、扩容死循环等)
    

 三、 Spring 框架

- 核心机制:请解释一下 Spring 的循环依赖问题以及它是如何通过三级缓存解决的?
    
- 缓存细节:每一级缓存分别存的是什么?为什么非要引入“三级缓存”而不能只用二级缓存?(涉及 Bean 生命周期与 AOP 适配)
    

四、 项目深度挖掘(规则引擎)

- 项目核心:请详细介绍一下你负责的规则引擎项目,包括你的角色和核心产出。
    
- 难点与挑战:在该项目中,让你印象最深刻的技术难点或业务难点是什么?
    
- 稳定性治理:你是如何实现规则的多版本快照和回滚功能的?
    
- 数据库设计:为了兼容旧表并实现多版本功能,你在表结构上做了哪些具体修改?
    
- 业务逻辑:当规则出现问题时,业务人员如何通过后台系统排查过去的执行情况?
    
- **回调机制**:业务回调功能是如何设计的?为什么要做异步优化?
    
- 可靠性考量:如果系统在回调过程中重启,线程池阻塞队列里的任务丢失了怎么办?如何保证数据一致性?
    
- 性能优化:你是如何发现规则执行链路存在耗时问题的?具体的优化手段(核心与非核心链路拆分)是什么?
    
- 系统指标:该系统的平均耗时(RT)和峰值 QPS 大约是多少?
    

五、 工程能力与运维排查

- 监控手段:你们是如何对线上规则的执行时间进行监控的?
    
- 线上排查:如果线上出现问题,你的排查流程是什么?
    
- 容器化知识:线上系统是容器化部署吗?你对 Docker 或 K8S 有多少了解?
    
- 日志定位:在容器环境下,你如何查找和定位历史日志文件?
全部评论
接好运
点赞 回复 分享
发布于 昨天 20:48 江西

相关推荐

评论
1
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务