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

2025年Java后端最新场景题+八股文面试题

🔥 一、Java核心与JVM高频题

  1. HashMap vs ConcurrentHashMap

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

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

  2. synchronized vs ReentrantLock

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

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

  3. volatile的作用与局限性

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

  4. JVM内存模型

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

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

  5. G1垃圾回收器特点

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

  6. OOM排查方法

    • jmap -dump导出堆内存 → MAT分析内存泄漏 → jstack查死锁14。

  7. 类加载机制

    • 双亲委派模型BootStrap → Extension → Application),打破方式(如Tomcat的WebAppClassLoader)14。


⚡ 二、并发编程实战

  1. 线程池参数设置

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

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

  2. AQS(AbstractQueuedSynchronizer)原理

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

  3. 分布式锁方案

    • RedisSETNX + RedLock)、ZooKeeper(临时节点 + Watch机制)134。


🌐 三、高并发与分布式系统

  1. 如何设计一个百万级QPS的秒杀系统?357

    • 核心问题:超卖、库存一致性、高并发请求14。

    • 解决方案

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

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

      • 风控防刷:IP限流、验证码、用户行为分析4。

  2. 分布式事务解决方案357

    • TCC模式Try-Confirm-Cancel):适用于金融支付系统14。

    • SAGA长事务:适用于补偿机制较强的业务14。

    • 本地消息表:最终一致性方案,适用于订单系统14。

  3. CAP理论应用

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

  4. 缓存一致性方案357

    • 延迟双删:先删缓存 → 更新DB → 再删缓存134。

    • 订阅BinlogCanal监听MySQL变更)134。

  5. 十亿级数据分页优化357

    • ES search_after(深度分页)134。

    • 覆盖索引 + 禁止跳页LIMIT 10000, 10优化)134。


💾 四、数据库与缓存优化

  1. MySQL索引失效场景357

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

  2. MVCC实现原理357

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

  3. 缓存雪崩预防357

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

  4. 热点Key探测

    • redis-cli --hotkeys --pattern "user:*"14。


🏗️ 五、微服务与系统设计

  1. Spring Boot自动配置原理

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

  2. 服务熔断策略

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

  3. 全链路灰度发布

    • 流量标记Header传递)+ Service MeshIstio动态路由)134。

  4. 设计一个高可用支付系统35

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

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


http://www.dtcms.com/a/340650.html

相关文章:

  • 田野科技“一张皮”,“AI+虚拟仿真”推动考古教学创新发展
  • 晨控EtherCAT设备分配IP操作手册
  • 详细的Git的安装教程
  • 运用平均值填充后的数据进行模型预测
  • 豆秒数科集团:汽车消费金融市场的领跑者
  • Linux中Cobbler服务部署与配置(快速部署和管理 Linux 系统)
  • TheadLocal相关
  • E10 通过RPC实现账号批量锁定与解锁
  • Json转txt
  • CTFshow系列——命令执行web38-40
  • 五种算法详解(SVM / Logistic Regression / kNN / Random Forest / HistGradientBoosting)
  • 无人机抗噪模块技术概述!
  • 20.web api 11
  • C5.6:双电源发射极偏置、特殊类偏置、PNP型偏置电路
  • 如何快速上手【Spring AOP】?核心应用实战(上篇)
  • 【买机器人,上BFT】香港大学联合项目论文解读 |Bunny-VisionPro:用于模仿学习的低成本实时双臂灵巧遥操作系统
  • SpringBoot 整合 Langchain4j RAG 技术深度使用解析
  • uv,下一代Python包管理工具
  • 机器学习-数据预处理全指南:从缺失值到特征编码
  • Tdesign-React 组件 Card 实现头部固定,内容区单独可滚动
  • vue:vue中的ref和reactive
  • 0820 SQlite与c语言的结合
  • 宿主机与容器通过 rmw_cyclonedds_cpp中间件进行ros2结点之间的通讯的相关注意事项
  • 开源的实时 Web 日志分析器GoAccess安装使用指南
  • 10X Visium HD空转流程1·Space Ranger v4.0.1的使用
  • [机器学习]11-基于CART决策树算法的西瓜数据集分类
  • bun + vite7 的结合,孕育的 Robot Admin 【靓仔出道】(十五)
  • LangGraph从入门到精通(二)——条件边与循环流程实现工具调用
  • 短剧小程序系统开发:构建影视娱乐新生态的基石
  • c#,装箱拆箱知识点示例理解