中科创达面试复盘
- 时间
- 2026-04
- 来源
- 牛客网
《面试题目》
- Java 接口和抽象类有什么共同点和区别?
- Java 线程池有哪些核心参数?分别有什么作用?
- 线程池接收到新任务后的执行流程是什么?
- 线程池的保活时间有什么作用?
- 线程池常见的任务队列有哪些?
- CAS 是什么?底层原理是什么?
- JVM 内存模型了解吗?
- Spring Boot、Spring Cloud 是自学的吗?平时通过什么方式学习 Java 技术?
- HTTP 了解吗?
- MySQL 什么场景适合建立索引?索引有什么好处和代价?
- MySQL 索引底层为什么使用 B+ 树?
- 数据库事务的 ACID 四大特性分别是什么?
- 项目是课程作业还是自己独立完成的?
- RAG 是自己实现的还是直接使用开源组件?
- 如何介绍自己实现的 RAG 整体流程?
- RAG 的文档切割如何实现?
- RAG 的多路召回策略如何设计?
- LangChain 的底层原理如何理解?
- 智能票务购票系统有没有使用 AI?
- AI 客服如何和传统业务结合?
- 项目前后端都是自己做的吗?前端使用什么技术?
- 开发 Agent 等新功能时是否会使用 AI 辅助开发?
《参考解析》
- 接口与抽象类:两者都可以定义抽象行为并由子类实现。接口更适合表达能力契约并支持多实现,抽象类可以复用状态和部分实现;具体选择取决于是否需要共享实现与单继承约束。
- 线程池流程:提交任务后先创建核心线程,核心线程满后进入队列,队列满再扩容到最大线程数,仍无法接收时执行拒绝策略;线程数、队列容量和拒绝策略应结合任务类型设置。
- CAS 与 ABA:CAS 比较内存位置的旧值并在相等时更新,依赖硬件原子指令。值从 A 变 B 再回 A 会产生 ABA,需要版本戳或带标记的原子引用区分变化。
- JVM 与线程池资源:JVM 运行时区域包括堆、虚拟机栈、方法区等;线程池中的长生命周期线程应清理线程本地状态,避免请求对象被意外持有。
- MySQL 索引:B+ 树非叶节点只存键,叶节点按序连接,能减少磁盘访问并高效支持范围扫描;索引会增加写入和存储成本,需根据过滤、排序和选择性设计。
- 事务 ACID:原子性保证全成或全败,一致性保证约束不被破坏,隔离性控制并发事务互相影响,持久性保证提交结果在故障后仍可恢复。
- RAG 流程:先清洗文档并按语义切块,生成向量写入索引;查询时做关键词、向量或重排召回,拼装证据上下文后交给模型生成,并保留引用和评估指标。
- LangChain:可将提示词、模型、检索器和工具编排成链或图,关键是明确状态传递、工具边界、超时和错误处理,不能把编排框架当作检索质量本身。
- AI 与传统业务结合:AI 负责意图识别、检索和自然语言生成,订单、库存、支付等关键动作仍由确定性的业务服务执行,并通过权限、审计和人工兜底控制风险。