京东云saas.md
复习(押宝)(2小时复习完 还有场景题)
-
java基础
- 字符串 (包装类默认实现了comparable接口)
- 集合 (arrayList,linkedList,hahsMap,TreeMap(key不能为空 比较器),linkedHashMap)(HashSet(HashMap) TreeSet(TreeMap)) (CopyOnWriteArrayList(锁+volatie+数组拷贝))
- (ConcurrentHashMap TreeBin维护树的结构 新增ForwardingNode(转移节点保证扩容线程安全 +(旋转红黑树上锁)))
- volatile 修饰数组
- put 自旋(保证一定可以成功)+CAS(put严谨)+双重check手段;如果遇到扩容 等待扩容完成在put 保证扩容老数组的值不会发生变化。
- 对数组槽点操作,先锁住槽点 保证只有1个线程对槽点的链表火红黑树进行操作.
- 红黑树旋转操作 会锁住根节点 保证旋转时的线程安全
- java7 是对数组进行分段 锁住某一段 java8 是锁住某个槽点 提高并发效率
- 多线程
- 线程的状态 (NEW->RUNABLE->BLOCKED->WAITING->TIME-WAITING->TERMINATED)
- 线程方法
- join
- yield(放弃当前cpu 让cpu重新选择)
- sleep(睡眠 不释放锁)
- interrupt (打断,wait,join,sleep 线程是 waiting打断会抛出InterruptedException 使线程进入TERMINATED;如果是IO被阻塞 会抛出ClosedByInterruptException异常)
- 并发包
- AQS
- status volatile
- 同步队列 和 条件队列
- 排他锁 reentrantLock
- 共享锁 countdownlatch
- tryAcquire tryRelease 是可以 cas 设置变量status 并设置当前线程 支持可重入机制
- JVM
-
数据库
- sql 执行过程
- sql 慢查询发现和处理
- sql 规范
- 读写分离
- 数据迁移
- 深分页问题
- 分表问题
- 分表数据倾斜如何处理 如何避免
- 分表带来的问题
- sql 中遇到的问题
- 分布式事务
- 数据同步工具
-
redis
- 基本数据结构使用场景
- redis使用问题如何优化
- 集群模式如何部署的
- 大key 热key 缓存击穿 缓存雪崩 缓存穿透
- 开发中遇到的问题
-
elasticsearch
- 基本架构
- 存储原理
- 查询原理
- 写入原理
- 使用技巧
- 出现问题如何排查
-
dubbo
- dubbo架构
- dubbo 使用中最佳实践
- dubbo 使用中遇到的问题
-
分布式事务
- 分布式事务技术对比
- 为何选择tcc
- tcc 解决了哪些问题 引发了什么问题 如何解决的
-
mq
- mq 原理
- mq 底层存储原理
- mq 事务消息
- mq 一致性保证 如何实现的
- 慢消费问题 如何处理的
- 最佳实践和遇到的问题
-
定时调度框架
- 定时调度框架原理
- 定时调度框架如何执行的
- 触发策略有哪些
- 如果超时未触发如何处理
- 超时如何中断
- 如何进行补偿 保证一致性
- 扫表缺点
-
分布式
-
分布式锁(redis zk 两者实现对比和优劣)
-
分布式事务
-
分布式cap理论
-
分布式base
-
分布式paxos raf zab 区别
-
分布式 数据一致性如何保证
-
一致性hash
-
分布式id生成
-
如何保证接口幂等 为啥不建议用数据库唯一性
-
负载均衡策略
-
熔断策略
-
降级策略
-
链路追踪
-
分布式缓存 和本地缓存有必要一起吗
-
spring
- spring ioc
- spring aop
- springboot 启动流程
- spring 循环依赖
- spring bean 的生命周期
- spring 事务
- spring event
- spring 使用了哪些设计模式
- spring shutdownhook作用是啥?
- 如何自定义一个spring start
- spring多数据源如何实现
- 什么情况导致bean无法初始化
- springmvce 如何实现流试输出
- springboot 双亲委派有什么不一样
-
ai
- prompt 是啥。如何定义
- docparse 如何解析。
- rag流程 如何优化。
- 工作流编排是咋做的。
- mcp 是啥如何使用。
- 向量比对使用模型 关注的参数。
- 平常使用哪些模型。
- 模型部署和模型微调
- agent 上下文记忆如何处理?(短期和长期)
- agent 工具调用和多agent是如何做的?
- agent 如何执行代码片段?
- agent 解决了什么?自主agent是啥?(意图识别)
-
系统指标
- 服务器cpu 内存 磁盘 网络 占用?
- 接口响应耗时
- qps
- 线程池监控
- 日志异常监控
-
微服务
- 如何进行服务拆分
- DDD是啥
- 微服务之间通信方式
- serviceMesh 是啥
- 分布式和微服务区别
-
解决过生产事故
- cpu 飙高
- 内存oom
- 死锁
- mq 数据堆积
- RT 飙高
- 慢SQL排查
-
项目中的亮点
- 数据平滑迁移
- 资源加载拆分成TCC事务
- TTL 解决参数共享问题
- 使用xxl-job 分片实现分表之后的扫表
- 状态机 + 乐观锁 解决并发问题
- 报表服务拆分 同步转异步 (定时补偿)
- 本地消息表实现分布式事务最终一致性
- 使用redis分布式锁 解决短信验证码重复发放
- 借助redis令牌桶 对多租户进行资源限流
- 基于token 避免重复提交
- easyExcel + 线程池 报表导出
-
算法技巧
- 双指针 左右指针 二分法 滑动窗口 贪心
- 数组 链表 树
- 排序算法

浙公网安备 33010602011771号