网站首页 > 博客文章 正文
以下是根据 Java 核心技术、主流框架、性能优化、分布式系统、工程实践五大方向整理的 Java 面试题分类总结,覆盖基础到高级高频考点,并附核心考察点解析:
一、Java 核心技术面试题
1. JVM 相关
- 基础题
1. JVM 内存区域如何划分?各区域的作用是什么?(考察内存模型)
2. 什么是 OOM?常见的 OOM 场景有哪些?(堆溢出、元空间溢出等)
3. 简述 GC 垃圾回收机制,如何判断对象可回收?(可达性分析、引用计数法)
- 中级题
1. 新生代和老年代的垃圾收集器有哪些?各自的特点?(Serial/ParNew/Parallel Scavenge 与 CMS/G1)
2. G1 收集器相比 CMS 有哪些优化?(分区域、可预测停顿时间)
3. 类加载的过程是什么?双亲委派模型的作用?(加载→验证→准备→解析→初始化,防止类重复加载)
- 高级题
1. 如何分析 JVM 内存泄漏?请列举工具及步骤(MAT、JProfiler、GC 日志分析)
2. 写出常见的 JVM 调优参数(如 -Xms、-Xmx、-XX:MetaspaceSize 等)
2. 并发编程
- 基础题
1. 线程和进程的区别?Java 中创建线程的方式有哪些?(继承 Thread/实现 Runnable/Callable)
2. 简述 synchronized 和 ReentrantLock 的区别?(底层实现、锁机制、功能特性)
3. 线程池的核心参数有哪些?常用线程池类型及适用场景?(ThreadPoolExecutor 参数,
FixedThreadPool/CachedThreadPool 等)
- 中级题
1. AQS 是什么?简述其实现原理(队列同步器,CLH 队列、状态位 atomic 操作)
2. 并发容器有哪些?ConcurrentHashMap 在 JDK 1.7 和 1.8 中的实现区别?(分段锁 vs CAS+链表/红黑树)
3. 什么是可见性、原子性、有序性?如何保证?(volatile/synchronized/锁)
- 高级题
1. 如何解决线程安全问题?请举例说明(CAS、悲观锁、乐观锁、ThreadLocal)
2. 聊聊线程池的拒绝策略(AbortPolicy、CallerRunsPolicy 等)及自定义实现思路
3. 集合与框架
- 基础题
1. ArrayList 和 LinkedList 的区别?(数组 vs 链表,随机访问效率、增删效率)
2. HashMap 的底层实现?为什么链表长度超过 8 转为红黑树?(数组+链表/红黑树,平衡查找效率)
3. List、Set、Map 的核心实现类及区别?(ArrayList/HashSet/HashMap 等)
- 中级题
1. HashSet 如何保证元素不重复?与 HashMap 的关系?(底层用 HashMap,元素作为 key)
2. CopyOnWriteArrayList 的原理及适用场景?(写时复制,适用于读多写少场景)
4. Java 基础特性
- 基础题
1. Java 8 新特性有哪些?(Lambda、Stream API、接口默认方法、LocalDateTime 等)
2. 抽象类和接口的区别?(实现方式、成员变量、继承关系)
3. 简述异常体系(Exception/Error,
CheckedException/UncheckedException)
二、主流框架面试题
1. Spring 框架
- 基础题
1. Spring 的 IoC 和 AOP 原理?(依赖注入、动态代理实现切面编程)
2. Spring Bean 的生命周期?(实例化→初始化→销毁,Aware 接口、后置处理器)
3. Spring 如何解决循环依赖?(三级缓存,早期暴露对象引用)
- 中级题
1. Spring Boot 自动配置的原理?(@EnableAutoConfiguration + SpringFactoriesLoader)
2. Spring 事务的实现方式?传播机制有哪些?(编程式/声明式,REQUIRED/NOT_SUPPORTED 等)
3. @Component、@Service、@Repository、@Controller 的区别?(语义化注解,用于组件扫描)
- 高级题
1. Spring Cloud 核心组件有哪些?各组件的作用?(Eureka/服务注册、Ribbon/负载均衡、Feign/声明式调用等)
2. 微服务架构下如何解决服务雪崩?(断路器 Hystrix/Sentinel、限流、降级)
2. MyBatis
- 基础题
1. MyBatis 中 #{} 和 ${} 的区别?(预编译防 SQL 注入 vs 字符串拼接)
2. MyBatis 的一级缓存和二级缓存?(会话级缓存、全局缓存,默认不开启二级缓存)
- 中级题
1. MyBatis 如何实现自定义类型处理器?(TypeHandler 接口,处理数据库类型与 Java 类型映射)
3. Netty
- 中级题
1. Netty 的线程模型?(Reactor 模式,BossGroup/WorkerGroup 线程池)
2. Netty 如何实现零拷贝?(FileRegion、CompositeByteBuf 等)
三、性能优化面试题
1. JVM 调优
- 基础题
1. 如何监控 JVM 性能?(
jps/jstat/jmap/jconsole/jvisualvm 等工具)
2. 简述 GC 调优的核心目标(降低停顿时间、提高吞吐量、避免 OOM)
- 中级题
1. 当应用出现频繁 Full GC 时,如何定位问题?(分析 GC 日志,查看对象分配速率、老年代增长情况)
2. 数据库与缓存优化
- 基础题
1. 如何优化慢 SQL?(索引优化、SQL 改写、分库分表)
2. Redis 为什么快?常用数据结构及场景?(单线程、内存操作,String/Hash/List/ZSet 等)
- 中级题
1. 缓存穿透、缓存击穿、缓存雪崩如何解决?(布隆过滤器、热点数据永不过期、分布式限流)
四、分布式系统面试题
1. 分布式理论
- 基础题
1. 简述 CAP 定理和 BASE 理论?(一致性、可用性、分区容错性,最终一致性)
2. 分布式系统中的数据一致性级别?(强一致、弱一致、最终一致)
- 中级题
1. 分布式事务解决方案有哪些?(2PC、TCC、本地消息表、事务消息)
2. 分布式组件
- 基础题
1. 如何实现分布式锁?Redis 和 ZooKeeper 实现的区别?(Redis 基于 SET NX,ZooKeeper 基于临时有序节点)
2. 服务注册与发现的核心原理?(服务提供者注册 IP+端口,消费者拉取注册表)
五、工程实践面试题
1. 设计模式
- 基础题
1. 单例模式的实现方式?如何防止反射和序列化破坏单例?(双重检查锁、静态内部类,重写 readResolve 方法)
2. 工厂模式和策略模式的应用场景?(解耦对象创建、动态切换算法)
- 中级题
1. 项目中如何使用设计模式优化代码?举例说明(如模板方法模式封装公共流程)
2. 代码质量与测试
- 基础题
1. JUnit 常用注解有哪些?(@Test、@Before、@After、@RunWith 等)
2. 什么是单元测试?为什么需要单元测试?(测试最小功能单元,提高代码可靠性)
猜你喜欢
- 2025-06-24 面试必备!Java核心技术面试100题(java核心面试精讲)
- 2025-06-24 2024最新版java面试题(八股文+场景题)合集!
- 2025-06-24 「开发者成长」5 个刁钻的Java String 面试题
- 2025-06-24 25 年 Java 开发者面试必问 TOP10 核心问题及破题攻略
- 2025-06-24 Java高薪跳槽面试官最爱问的50道题深度解读
- 2025-06-24 Java高频八股文面试题及参考答案(js 八股文)
- 2025-06-24 10 个经典的 Java 集合面试题,看你能否答得上来?
- 2025-06-24 Java面试场景题及答案最全总结(2025版持续更新)
- 2025-06-24 2025年阿里Java面试题库(纯干货,超详细,从题目到答案)
- 2025-06-24 Java面试题及答案最全总结(2025版持续更新)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)