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

2025年最新秋招java后端面试八股文+场景题

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

1. Java基础
  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分区、可预测停顿、适合大内存应用。


二、高并发与分布式系统(2025重点)

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

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

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

  2. AQS原理

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

  3. 分布式锁方案

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

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

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

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

  2. CAP理论应用

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


三、数据库与缓存优化(2025高频)

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

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

  2. 索引失效场景

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

  3. MVCC实现原理

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

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

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

  2. 缓存雪崩预防

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


四、微服务与架构设计(2025新趋势)

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辅助代码生成(如GitHub Copilot),需关注代码安全审查。


六、面试技巧(2025适用)

  1. 项目深挖

    • 用STAR法则描述:背景(S)、任务(T)、行动(A)、结果(R)。

    • 示例:“通过Redis集群优化,商品查询RT从200ms降至50ms”

  2. 算法准备

    • LeetCode中等难度高频题:二叉树遍历、DFS/BFS、动态规划。


 

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

相关文章:

  • Linux操作系统之线程(三)
  • 动态规划算法的欢乐密码(三):简单多状态DP问题(上)
  • VBA 运用LISTBOX插件,选择多个选项,并将选中的选项回车录入当前选中的单元格
  • 【Linux系统】进程控制
  • 高效适配多分辨率!Unity动态UI缩放工具 Resize Pro 免费分享
  • 用户中心项目实战(springboot+vue快速开发管理系统)
  • Window延迟更新10000天配置方案
  • 【逻辑回归】MAP - Charting Student Math Misunderstandings
  • PostgreSQL ORDER BY 语句详解
  • bash方式启动模型训练
  • tkinter绘制组件(45)——导航栏
  • EP01:【Python 第一弹】基础入门知识
  • 国产电科金仓数据库:融合进化,智领未来
  • C++进阶课程第4期——动态规划
  • FastAPI遇上GraphQL:异步解析器如何让API性能飙升?
  • C++中的list(1)
  • c#中ArrayList和List的常用方法
  • 微信小程序入门实例_____从零开始 开发一个“旅行清单 ”微信小程序
  • Flutter基础(前端教程①④-data.map和assignAll和fromJson和toList)
  • 【深度学习笔记 Ⅱ】1 数据集的划分
  • Linux:多线程---深入生产消费模型环形队列生产消费模型
  • OSPF高级特性之Overflow
  • MyBatis之缓存机制详解
  • uniapp中报错:ReferenceError: FormData is not defined
  • 【安卓笔记】RxJava的Hook机制,整体拦截器
  • JavaScript空值安全深度指南
  • 加线机 和 胶带机
  • LVS 集群技术实践:NAT 与 DR 模式的配置与对比
  • 如何在HTML5页面中嵌入视频
  • 基于单片机宠物喂食器/智能宠物窝/智能饲养