Git分支模型(参考阿里Aone Flow)

技术面试复习清单(Java 后端 + AI 应用方向)


✅ 第一部分:Java 后端面试重点复习

🍃 Java 核心

  • Java基础:

    • 集合类实现原理(HashMap 的哈希冲突解决、负载因子、扩容机制)

      • 示例:HashMap源码剖析

      • 属性 说明
        哈希冲突解决 链表法 + 红黑树
        默认负载因子 0.75
        扩容阈值 当前容量 × 负载因子
        扩容倍数 每次扩容为原来的 2 倍
        红黑树转化阈值 链表长度 > 8,且桶数组长度 > 64
    • List 与 Set 的区别,线程安全集合使用(CopyOnWriteArrayList、ConcurrentHashMap)

      • 说明:集合类对比总结

      • 项目 List Set
        是否允许重复元素 ✅ 允许 ❌ 不允许
        是否有顺序 ✅ 有插入顺序 ❌ 无顺序(HashSet),但TreeSet有排序
        常见实现类 ArrayList, LinkedList, Vector HashSet, LinkedHashSet, TreeSet
        底层结构 ArrayList: 数组LinkedList: 双向链表 HashSet: HashMap 实现TreeSet: 红黑树
        查找效率 ArrayList 是 O(1)(索引查找) HashSet 是 O(1),TreeSet 是 O(logN)
        使用场景 需要按顺序存储、可重复数据 要求元素唯一性、不关注顺序
  • 多线程与并发:

    • 线程创建方式(Thread、Runnable、Callable)及线程池(Executors)
    • synchronized 与 ReentrantLock 区别
    • volatile 原理、内存可见性、指令重排序
    • 原子类(AtomicInteger、LongAdder)与 CAS 实现
    • 并发工具类:CountDownLatch、CyclicBarrier、Semaphore
  • JVM:

    • JVM 内存区域(堆、栈、方法区、直接内存)
    • 类加载机制(双亲委派)、类卸载机制
    • GC 垃圾回收算法(标记-清除、复制、CMS、G1)
    • 性能调优工具(jstack、jmap、jvisualvm)

🌐 Spring & Spring Boot

  • IOC / AOP原理:BeanFactory 与 ApplicationContext,动态代理、切面编程
  • Bean 生命周期:构造 -> set 属性 -> 初始化 -> 销毁
  • 常用注解原理(@Transactional 的事务传播行为与回滚机制)
  • 自动配置原理:SpringFactoriesLoader、条件注解(@ConditionalOnMissingBean)

🛠️ 数据库 & 缓存

  • MySQL:
    • 索引类型(B+树)、覆盖索引、联合索引与最左匹配原则
    • SQL 调优(explain 分析、慢查询日志)
    • 事务隔离级别(Read Uncommitted、Repeatable Read 等)与幻读、MVCC 实现
  • Redis:
    • 数据结构(String、List、Set、Hash、ZSet)典型应用场景
    • 持久化机制(RDB vs AOF)、主从复制、哨兵机制
    • 缓存击穿(互斥锁)、穿透(布隆过滤器)、雪崩(过期时间错开)处理
    • 分布式锁(SET NX PX 实现原理、Redlock 分布式算法)

🧱 中间件

  • Kafka:
    • Producer/Consumer 原理、分区机制、消费位移管理
    • 消费模式(at most once、at least once)、幂等性保证
  • RabbitMQ:
    • 交换机类型(Direct、Fanout、Topic)、消息确认与重试
  • Netty:事件驱动模型、零拷贝、Reactor 模式
  • Nginx:反向代理、负载均衡、location 匹配规则、缓存设置
  • 分布式ID:UUID 特点、雪花算法结构(时间戳+机器ID+序列号)

⚙️ 系统设计 / 分布式

  • 微服务架构:服务注册发现(Eureka/Nacos)、配置中心(Spring Cloud Config)
  • 分布式事务:
    • TCC(Try-Confirm-Cancel)原理与应用
    • 可靠消息最终一致性(RocketMQ事务消息)
    • SAGA 状态机模式(流程编排)
  • 限流熔断降级:
    • Hystrix:断路器、舱壁、降级策略
    • Sentinel:滑动窗口限流、预热、熔断规则设置

✅ 第二部分:AI 应用相关知识点

🤖 LLM 应用开发基础(LangChain / Flowise / OpenAI API)

  • Prompt Engineering:角色设定、上下文拼接、few-shot 提示设计
  • LangChain 模块:
    • LLMChain:单轮调用链
    • RetrievalQA:向量搜索增强问答
    • Agent:动态任务调度
    • Memory:对话历史上下文管理(BufferMemory、SummaryMemory)
  • 向量数据库:
    • Faiss:本地索引(Flat、IVF、HNSW)、Index 保存/加载方式
    • Chroma / Weaviate:文档分片、元数据存储与过滤检索
  • Embedding:
  • RAG:文档分片 ➝ embedding ➝ 存入向量库 ➝ 查询补全 context ➝ LLM 回答
  • OpenAI 接口:API Key、temperature、top_p、stream 流式输出、速率限制处理

💾 向量库与检索应用

  • Faiss 操作:
    • 构建索引:IndexFlatL2、IndexIVFFlat
    • 插入数据:add_with_ids
    • 查询相似向量:search(query, k)
    • 快速入门:Faiss官方示例
  • 向量检索原理:L2距离、Cosine 相似度、内积
  • 本地 vs 云部署:FastAPI + Uvicorn 封装 Faiss API 远程调用

🧠 Java 接入 AI 方向

  • 接入方式:
    • 使用 WebClient / OkHttp / Feign 调用 OpenAI 接口
    • 解析 JSON 响应并集成流式 SSE 输出
  • LangChain4j:
    • 使用 PromptTemplate + OpenAiLanguageModel 构建聊天功能
    • 与 Redis / 向量库集成构建知识问答
  • Demo 项目:
    • Java ChatPDF 实现:上传 PDF ➝ 分词 ➝ embedding ➝ 存储 ➝ 问答接口

📋 Bonus:系统设计类面试常见题目(准备简要方案)

  1. 高并发电商下单系统:库存缓存、异步削峰(MQ)、分布式锁、防重提交
  2. 聊天记录搜索:切分聊天文本 ➝ embedding ➝ 存 Faiss ➝ 模糊匹配
  3. 智能问答机器人系统:文档预处理 ➝ 向量库 ➝ RAG 模式 ➝ LLM 调用
  4. Java 服务接 GPT-4 生成摘要:接口设计、鉴权、token 管控、缓存存储
  5. 简易 LangChain Chat Bot:Java 封装接口 + LangChain4j agent + memory 实现