Java面试题目录
1、Java基础
1.1、ConcurrentHashMap的底层实现,jdk1.7和jdk1.8的区别,锁方面的优化;
ConcurrentHashMap底层实现原理(JDK1.7 & 1.8) - 简书 (jianshu.com)
1.2、GC的原理,涉及到的算法有哪些,GC调优怎么处理;
老大难的Java GC原理和调优,看这篇就够了 - 分布式系统架构 - 博客园 (cnblogs.com)
JVM基础系列:G1垃圾回收器 - 梅晓煜 - 博客园 (cnblogs.com)
1.3、ArrayList和LinkedList的区别是什么,底层实现是什么;
Java中ArrayList与LinkedList的区别 - 知乎 (zhihu.com)
1.4、jvm内存模型,以及jvm如何加载class文件;
1.5、线程和进程的区别是什么;
线程和进程有什么区别 - bwinLv - 博客园 (cnblogs.com)
1.6、jvm调优有哪些方面,包含了哪些参数;
Java面试复习总结(JVM篇9)——JVM常用参数以及调优实践-CSDN博客
1.7、Java类加载器有几种;
(47条消息) 深入理解Java类加载器(ClassLoader)_zejian_的博客-CSDN博客_java类加载器
1.8、jit是什么;即时编译器(Just In Time Compiler,下文统称JIT编译器)
java中的即时编译(JIT)简介 - 老魏去东 - 博客园 (cnblogs.com)
1.9、spi;
Java SPI详解 - jy的blog - 博客园 (cnblogs.com)
Java SPI 与 Dubbo SPI 有什么区别? - Java技术栈 - 博客园 (cnblogs.com)
1.10、jmx;
(47条消息) Java JMX 使用_shpunishment的博客-CSDN博客
1.11、数据结构
红黑树与B树、B+树_红黑树和b树和b+树的区别-CSDN博客
1.12、内存溢出cpu飚高的解决办法
CPU&内存GC分析和JVM调参 - 扰扰 - 博客园 (cnblogs.com)
2、spring
2.1、spring的生命周期,或者说bean的生命周期;
一文读懂 Spring Bean 的生命周期_老周聊架构的博客-CSDN博客_springbean生命周期详解
2.2、spring循环依赖怎么解决,spring三层缓存机制;
2.3、springboot是如何实现自动装配的;
(47条消息) springboot自动装配_csdn_freak_dd的博客-CSDN博客
2.4、spring常用的注解有哪些;
@Condition(条件判断)、@ConditionalOnMissingBean、
2.5、springmvc生命周期:
(47条消息) SpringMVC的生命周期_风神修罗使的博客-CSDN博客
3、并发编程
3.1、cas、synchronized 和 volatile的区别和原理;
(47条消息) synchronized、volatile以及CAS的区别_大当家_白的博客-CSDN博客_synchronized、volatile、cas 比较
cas能保证线程安全,volatile只能保证线程间可见,线程不安全
3.2、sychronized锁及锁升级
深入理解synchronized底层原理,一篇文章就够了! - 腾讯云开发者社区-腾讯云 (tencent.com)
3.2、aqs的原理及相关实现类;
从ReentrantLock的实现看AQS的原理及应用 - 美团技术团队 (meituan.com)
3.3、阻塞队列有哪些,线程工具类有哪些,例如condition;
3.3、可重入锁、乐观锁、悲观锁、红黑锁、公平锁和非公平锁的机制;
3.4、线程池相关内容,线程池类型及相关参数;
Java面试-03多线程 - 扰扰 - 博客园 (cnblogs.com)
3.5、线程池拒绝策论;
(47条消息) java线程池的四种拒绝策略_TTODS.的博客-CSDN博客
4、redis
4.1、redis的集群方式(cloud哨兵模式);
4.2、redis雪崩和击穿的处理方式;
【Redis】缓存穿透、缓存击穿、缓存雪崩的原因及解决方案-CSDN博客
4.3、redis的使用场景是什么;
4.4、redis如果处理缓存数据和持久化数据的同步问题;
5、mysql
5.1、关于sql慢查询的处理方式;
5.2、关于聚合索引和非聚合索引的区别;
5.2.1、联合索引查询的问题及联合索引的建立过程
MySQL索引之联合索引_mysql 联合索引-CSDN博客
5.3、事务管理及mvcc机制
5.4、如何做数据库优化;
in查询需要少于1000的对象,要不然速度很慢
5.5、MyBatis一级缓存和二级缓存;
MyBatis基础应用 (四)——一篇文章从底层彻底弄明白MyBatis一级缓存和二级缓存_mybatis进行1级缓存查询时不会打印sql日志吗-CSDN博客
5.6、MyBatis注意事项
1、查询海量数据时需要使用游标,要不然内存占用高。MyBatis 3.2 以上版本支持游标,允许逐行处理结果集。
5.7、日志类型和作用
了解mysql三大日志:binlog、redolog、undolog_在mysql中,undo_log,redo_log,bin_log是不是都必须存在,能不能少一个或两-CSDN博客
5.8、mysql锁机制
6、消息队列(rabbitMQ为例)
6.1、消息队列的使用场景;
6.2、如何处理重复消息的问题;
6.3、消息队列的有哪些主要对象
(vhost:虚拟主机、Exchange:消息交换机、Queue:消息队列载体、Binding:绑定、Routing Key:路由关键字、producer:消息生产者、consumer:消息消费者、channel:消息通道、Broker:简单来说就是消息队列服务器实体)
6.4、死信队列
6.5、顺序消费
7、ElasticSearch
7.1、基本概念;
7.2、倒排索引的概念;
7.3、数据同步的问题;
7.4、数据只读不写问题
es默认磁盘超过80%,就只能读,不能写。需要修改配置
8、zookeeper
8.1、zookeeper的节点类型,
临时节点、临时有序节点、持久节点、持久有序节点;
8.2、zookeeper的监听机制;
9、dubbo
9.1、dubbo的负载均衡策略;
9.2、dubbo的服务注册和发现,check=fasle设置问题;
9.3、dubbo支持的协议类型
dubbo 支持的9种协议_mb63f320ecc1fa6的技术博客_51CTO博客
9.4、dubbo支持的序列化类型
Dubbo的多种序列化算法-腾讯云开发者社区-腾讯云 (tencent.com)
10、设计模式有哪些?
11、使用过哪些算法
堆排序、快排、空间规划算法D1
12、分布式锁的实现
什么是分布式锁?实现分布式锁的三种方式 - 刘清政 - 博客园 (cnblogs.com)
12.1、通过zookeeper实现,涉及到哪些问题,怎么解决;
12.3、通过redis实现,涉及到哪些问题,怎么解决;
13、分布式事务
两段式提交
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)