当前位置: 首页 > news >正文

2025年最新Java后端场景题+八股文合集(100w字面试题总结)

一、Java核心八股文(2025最新版)

  1. HashMap vs ConcurrentHashMap

    • HashMap:非线程安全,JDK1.8后采用数组+链表/红黑树,扩容可能死循环(JDK1.7问题)。

    • ConcurrentHashMap:JDK1.8改用CAS+synchronized优化锁粒度,分段锁淘汰。

  2. synchronized vs ReentrantLock

    • synchronized:JVM内置锁,非公平锁,不可中断。

    • ReentrantLock:支持公平锁、可中断、Condition条件队列。

  3. volatile的作用与限制

    • 保证可见性(强制主存读取)和有序性(禁止指令重排序),但不保证原子性(如 i++ 需 AtomicInteger)。

  4. JVM内存模型

    • 线程私有:虚拟机栈、本地方法栈、程序计数器。

    • 线程共享:堆、方法区(JDK1.8后为元空间)。

  5. G1垃圾回收器特点

    • Region分区、可预测停顿、适合大内存应用。


二、高并发与分布式系统

1. 并发编程
  1. 线程池参数设置

    • corePoolSize(核心线程数)、maxPoolSize(最大线程数)、workQueue(任务队列)、拒绝策略。

    • IO密集型CPU核心数 * 2CPU密集型CPU核心数 + 1

  2. AQS(AbstractQueuedSynchronizer)原理

    • 核心:state(资源状态) + CLH队列(线程排队),实现类如 ReentrantLockCountDownLatch

  3. 分布式锁方案

    • Redis(SETNX + RedLock)、ZooKeeper(临时节点 + Watch机制)。

2. 分布式场景题
  1. 百万级QPS秒杀系统设计

    • 分层削峰:Nginx限流 → Redis预减库存(Lua脚本保证原子性)→ 消息队列异步处理。

    • 热点隔离:独立Redis集群处理秒杀商品。

  2. CAP理论应用

    • 支付系统侧重CP(一致性+分区容错性),社交系统可能选择AP(高可用性)。

  3. 分布式事务解决方案

    • TCC(Try-Confirm-Cancel)、SAGA(补偿机制)、本地消息表(最终一致性)。


三、数据库与缓存优化

1. MySQL深度优化
  1. 十亿级数据分页查询优化

    • ES search_after(深度分页)、覆盖索引 + 禁止跳页LIMIT 10000, 10优化)。

  2. 索引失效场景

    • LIKE '%xx'、函数计算、OR条件、隐式类型转换。

  3. MVCC实现原理

    • ReadView + Undo Log版本链,解决不可重复读 & 幻读

2. Redis高级应用
  1. 缓存一致性方案

    • 延迟双删(先删缓存→更新DB→再删缓存)、订阅Binlog(Canal监听MySQL变更)。

  2. 缓存雪崩预防

    • 随机过期时间 + 多级缓存(本地→Redis→DB)+ 熔断降级(Sentinel)。


四、微服务与架构设计

1. 微服务核心问题
  1. Spring Boot自动配置原理

    • @EnableAutoConfiguration + META-INF/spring.factories + 条件注解(@Conditional)。

  2. 服务熔断策略

    • Sentinel动态调整阈值(基于慢调用比例触发降级)。

2. 系统设计题
  1. 高可用支付系统

    • 一致性:TCC事务 + 对账机制。

    • 容灾:同城多活(MySQL Binlog + Kafka数据同步)。

  2. 全链路灰度发布

    • 流量标记(Header传递) + Service Mesh(Istio动态路由)。


五、2025年新兴技术(加分项)

  1. 云原生技术

    • K8s在大促中的应用(HPA自动扩缩容)、Serverless(适合定时任务/日志分析)。

  2. AI工程化

    • LLM集成(大语言模型在推荐系统的应用)、向量数据库(Milvus/FAISS实现相似搜索)。

  3. 量子加密迁移

    • 金融系统替换RSA为抗量子加密算法(如Lattice-based Crypto)。


http://www.lryc.cn/news/614188.html

相关文章:

  • [激光原理与应用-176]:测量仪器 - 频谱型 - AI分类与检测相对于传统算法的优缺点分析
  • 零知开源——基于STM32F103RBT6的TDS水质监测仪数据校准和ST7789显示实战教程
  • 【优选算法】BFS解决拓扑排序
  • Rust语言序列化和反序列化vec<u8>,serde库Serialize, Deserialize,bincode库(2025年最新解决方案详细使用)
  • 全面了解svm
  • 海量数据处理问题详解
  • MySQL 正则表达式详细说明
  • [ MySQL 数据库 ] 环境安装配置和使用
  • 零基础深度学习规划路线:从数学公式到AI大模型的系统进阶指南
  • IPC总结
  • 【接口自动化测试】
  • FastAPI的BackgroundTasks如何玩转生产者-消费者模式?
  • 关于 Rust 异步底层实现中 waker 的猜测
  • #C语言——刷题攻略:牛客编程入门训练(六):运算(三)-- 涉及 辗转相除法求最大公约数
  • GPT OSS 双模型上线,百度百舸全面支持快速部署
  • 创建MyBatis-Plus版的后端查询项目
  • SQL Server 2019搭建AlwaysOn高可用集群
  • 模块 PCB 技术在未来通信领域的创新突破方向
  • Cisco 2018-2023年度互联网报告深度解析:数字化转型时代的网络发展趋势与战略洞察
  • kafka 为什么需要分区?分区的引入带来了哪些好处
  • SpringMVC(四)
  • 前后端日期交互方案|前端要传时间戳还是字符串?后端接收时是用Long还是Date还是String?
  • 机器学习 SVM支持向量机
  • 虚幻基础:场景actor与角色的碰撞
  • (0️⃣基础)程序控制语句(初学者)(第3天)
  • Javase-异常
  • Idea配置——build system的选项区别
  • SpringBoot激活指定profile的方式
  • 灰狼算法+四模型对比!GWO-CNN-LSTM-Attention系列四模型多变量时序预测
  • 《汇编语言:基于X86处理器》第12章 浮点数处理与指令编码(2)