前言
时间过的真快,转眼就2023了,现在面临年底裁员,公司跳槽,不论是校招还是社招都避免不了各种面试,如何去准备面试就变得格外重要了,相信一些小伙伴也在为自己的技术,薪资,发展做提升的准备。
![](https://i-blog.csdnimg.cn/blog_migrate/7c64bddb3559cebd56a44258a97e9bdd.webp?x-image-process=image/format,png)
小编这次会从11个Java专题技术进行分享,大致的目录可以看看↓↓↓
1、JAVA基础
2、JAVA并发
3、JVM
4、MySQL
5、Redis
6、开发框架
7、分布式
8、微服务
9、消息队列
10、网络
11、ES&项目实战
![](https://i-blog.csdnimg.cn/blog_migrate/ae6f33273c433740f30b7031ce96929b.webp?x-image-process=image/format,png)
一、JAVA基础
1、==和equals
2、ArrayList和LinkedList有哪些区别
3、ConcurrentHashMap的扩容机制
4、ConcurrentHashMap原理简述,jdk7和jdk8的区别
5、CopyOnWriteArrayList的底层原理是怎样的
6、hashcode和equals
7、HashMap的扩容机制原理
8、HashMap和HashTable的区别及底层实现
9、java中的异常体系
10、JDK、JRE、JVM区别和联系
11、List和Set
12、String、StringBuffer、StringBuilder的区别
13、Jdk1.7到Jdk1.8 java虚拟机发生了什么变化
14、说一下HashMap的Put方法
15、接口和抽象类
16、泛型中extends和super的区别
17、深拷贝和浅拷贝
18、面向对象
19、重载和重写的区别
二、JAVA并发
![](https://i-blog.csdnimg.cn/blog_migrate/ae4954e73eefa0d74643d0584273c6ea.webp?x-image-process=image/format,png)
1、CountDownLatch和Semaphore的区别和底层原理
2、ReentrantLock中tryLock()和lock()方法的区别
3、ReentrantLock中的公平锁和非公平锁的底层实现
4、sleep、wait、join、yield
5、Sychronized的偏向锁、轻量级锁、重量级锁
6、Sychronized和ReentrantLock的区别
7、ThreadLocal的底层原理
8、ThreadLocal的原理的使用场景
9、ThreadLocal内存泄露问题,如何避免
10、Thread和Runnable
11、阿里一面:如何查看线程死锁
12、阿里一面:说一下ThreadLocal
13、阿里一面:线程之间如何进行通讯的
14、并发、并行、串行
15、并发三大特性
16、对线程安全的理解
17、京东二面:并发编程三要素
18、京东一面:Java死锁如何避免
19、京东一面:如果你提交任务时,线程池队列已满,这时会发生什么
20、蚂蚁二面:volatile关键字,他是如何保证可见性,有序性
21、蚂蚁一面:sychronized的自旋锁、偏向锁、轻量级锁、重量级锁,分别介绍和联系
22、蚂蚁一面:sychronized和ReentrantLock的区别
23、蚂蚁一面:简述线程池原理,FixedThreadPool用的阻塞队列是什么
24、如何理解volatile关键字
25、说说你对守护线程的理解
26、线程池处理流程
27、线程池的底层工作原理
28、线程池中阻塞队列的作用?为什么是先添加列队而不是先创建最大线程
29、线程的生命周期及状态
三、JVM
![](https://i-blog.csdnimg.cn/blog_migrate/c03feb0e46d27fec365de0f74f79fb5d.webp?x-image-process=image/format,png)
1、GC如何判断对象可以被回收
2、JAVA类加载
3、java类加载器有哪些
4、JVM内存模型
5、JVM有哪些垃圾回收器
6、JVM有哪些垃圾回收算法
7、阿里一面:说一下JVM中,哪些是共享区,哪些可以作为gc root
8、JVM中哪些是线程共享区
9、阿里一面:你们项目如何排查JVM问题
10、京东二面:说说类加载器双亲委派模型
11、蚂蚁二面:Java的内存结构,堆分为哪几部分,默认年龄多大进入老年代
12、你们项目如何排查JVM问题
13、如何进行JVM调优
14、什么是字节码,作用是什么
15、怎么确定一个对象是不是垃圾
四、MySQL
![](https://i-blog.csdnimg.cn/blog_migrate/ea7685c6445942854612e0526ff1cf0b.webp?x-image-process=image/format,png)
1、ACID靠什么保证的
2、B树和B+树的区别,为什么Mysql使用B+树
3、Explain语句结果中各个字段分表表示什么
4、Innodb是如何实现事务的
5、MySQL的索引结构是什么样的
6、MySQL的锁有哪些
7、MySQL集群如何搭建
8、mysql聚簇和非聚簇索引的区别
9、Mysql慢查询该如何优化?
10、mysql索引结构,各自的优劣
11、mysql锁的类型有哪些
12、Mysql锁有哪些,如何理解
13、MySQL有哪几种数据存储引擎
14、mysql执行计划怎么看
15、mysql主从同步原理
16、阿里二面:Innodb是如何实现事务的
17、阿里二面:Mysql数据库中,什么情况下设置了索引但无法使用
18、存储拆分后如何解决唯一主键
19、海量数据下,如何快速查找一条记录
20、简述Myisam和Innodb的区别
21、简述mysql中索引类型及对数据库的性能的影响
22、蚂蚁二面:Mysql的锁你了解哪些
23、蚂蚁一面:B树和B+树的区别,为什么Mysql使用B+树
29、事务的基本特性和隔离级别
30、如何实现分库分表
31、什么是MVCC
32、什么是脏读、幻读、不可重复读
33、事务的基本特性和隔离级别
34、索引的基本原理
35、索引的设计原则
36、索引覆盖是什么
37、谈谈如何对MySQL进行分库分表
38、最左前缀原则是什么
五、Redis
![](https://i-blog.csdnimg.cn/blog_migrate/c284c7e27751cb3a892c72c6787a7ade.webp?x-image-process=image/format,png)
1、RDB和AOF机制
2、Redis单线程为什么这么快
3、redis的持久化机制
4、Redis的过期键的删除策略
5、Redis分布式锁底层是如何实现的?
6、Redis和Mysql如何保证数据一致
7、redis集群方案
8、Redis如何设置key的过期时间
9、Redis线程模型,单线程为什么快
10、Redis有哪些数据结构?分别有哪些典型的应用场景?
11、redis主从复制的核心原理
12、阿里二面:Redis的数据结构及使用场景
13、阿里二面:Redis集群策略
14、布隆过滤器原理,优缺点
15、常见的缓存淘汰算法
16、分布式系统中常用的缓存方案有哪些
17、缓存穿透、缓存击穿、缓存雪崩
18、缓存穿透、缓存击穿、缓存雪崩分别是什么
19、缓存过期都有哪些策略
20、缓存雪崩、缓存穿透、缓存击穿
21、简述redis分布式锁实现
22、简述redis九大数据结构
23、简述redis事务实现
24、简述redis主从同步机制
25、如何保证Redis与数据库的数据一致
26、如何保证数据库与缓存的一致性
27、如何避免缓存穿透、缓存击穿、缓存雪崩
28、说一下你知道的redis高可用方案
六、开发框架
![](https://i-blog.csdnimg.cn/blog_migrate/bfd75a9e914a9ff006a60977f5d2f9ee.webp?x-image-process=image/format,png)
1、{}和${}的区别
2、ApplicationContext和BeanFactory有什么区别
3、BeanFactory和ApplicationContext有什么区别
4、mybatis插件运行原理及开发流程
5、Mybatis存在哪些优点和缺点
6、mybatis和hibernate的对比
7、spring、springmvc、springboot的区别
8、SpringBoot是如何启动Tomcat的
9、SpringBoot中常用注解及其底层实现
10、SpringBoot中配置文件的加载顺序是怎样的?
11、springboot自动配置原理
12、SpringMVC的底层工作流程
13、springmvc的九大组件
14、springmvc工作流程
15、SpringMVC中的控制器是不是单例模式
16、spring的事务传播机制
17、Spring框架中的Bean是线程安全的吗
18、Spring框架中的单例Bean是线程安全的么
19、spring框架中使用了哪些设计模式及应用场景
20、Spring容器的启动流程是怎样的
21、Spring如何处理事务
22、阿里二面:Spring中后置处理器的作用
23、阿里二面:如何实现AOP,项目哪些地方用到了AOP
24、阿里二面:说说常用的SpringBoot注解,及其实现
25、阿里一面:还读过哪些框架源码介绍一下你还熟悉的
26、阿里一面:介绍一下Spring,读过源码介绍一下大致流程
27、阿里一面:什么时候@Transactional失效
28、阿里一面:说一下Spring的事务机制
七、分布式
![](https://i-blog.csdnimg.cn/blog_migrate/17f5f5993359afe96c8e718176f132c4.webp?x-image-process=image/format,png)
1、CAP理论,BASE理论
2、Dubbo 的整体架构设计及分层
3、Dubbo的架构设计是怎样的?
4、dubbo和springcloud对比
5、dubbo集群容错策略有哪些
6、Dubbo是如何完成服务导出的?
7、Dubbo是如何完成服务引入的?
8、Dubbo是什么?能做什么?
9、dubbo支持的协议有哪些
10、Dubbo支持的注册中心有哪些
11、Dubbo支持哪些负载均衡策略
12、dubbo中Zk集群挂掉,发布者和订阅者还能通信么
13、Quorum、WARO机制
14、session的分布式方案
15、Spring Cloud和Dubbo的区别
16、zk的watch机制实现原理
17、zk的初始化选举和崩溃选举过程
18、zk的会话管理机制
19、zk的数据模型和节点类型
20、zk的数据同步原理
21、zk分布式锁实现原理
22、zk和eureka的区别
23、zk实际如何存储dubbo生产者和消费者信息
24、zk中一个客户端修改了某个节点的数据,其他客户端能够马上获取到这个最新数据吗
25、Zookeeper集群中节点之间数据是如何同步的
26、Zookeeper中的领导者选举的流程是怎样的?
27、阿里二面:说说你了解的分布式锁实现
28、阿里一面:Dubbo的负载均衡策略
29、阿里一面:Dubbo是如何做系统交互的
30、定时任务实现原理
31、对比两阶段,三阶段有哪些改进
32、分布式id生成方案
33、分布式ID是什么?有哪些解决方案?
34、分布式缓存寻址算法
35、分布式架构下,Session 共享有什么方案
36、分布式事务如何处理
37、分布式事务有哪些解决方案
38、分布式锁的使用场景是什么?有哪些实现方案?
39、分布式锁解决方案
40、分布式系统的设计目标
八、微服务
![](https://i-blog.csdnimg.cn/blog_migrate/9c2236f09da32c3f2a33caf438a0c1ab.webp?x-image-process=image/format,png)
1、SOA、分布式、微服务之间有什么关系和区别?
2、Spring Cloud和Dubbo有哪些区别?
3、Spring Cloud有哪些常用组件,作用是什么?
4、SpringCloud和SpringCloudAlibaba都有哪些组件
5、springcloud核心组件及其作用
6、高并发场景下如何实现系统限流
7、京东一面:SpringCloud各组件功能,与Dubbo的区别
8、什么是Hystrix?简述实现机制
9、什么是服务降级、什么是熔断
10、什么是服务熔断?什么是服务降级?区别是什么?
11、什么是服务雪崩?什么是服务限流?
12、谈谈你对微服务的理解
13、项目中怎么保证微服务敏捷开发
14、怎么拆解微服务中台?
九、消息队列
1、Kafka、ActiveMQ、RabbitMQ、RocketMQ 对比
2、Kafka的Pull和Push分别有什么优缺点
3、kafka高性能高吞吐的原因
4、Kafka是pull?push?优劣势分析
5、Kafka为什么比RocketMQ的吞吐量要高
6、Kafka消息丢失的场景及解决方案
7、Kafka消息高可靠解决方案
8、Kafka中zk的作用
9、Kafka中高性能的原因分析
10、MQ如何保证分布式事务的最终一致性
11、MQ如何保证消费幂等性
12、MQ如何保证消息的高效读写
13、MQ如何保证消息顺序
14、MQ如何进行产品选型
15、MQ有什么用
16、rabbitmq的镜像队列原理
17、rabbitmq的死信队列、延迟队列原理
18、rabbitmq可以直连队列么
19、RabbitMQ如何保证消息的可靠性传输
20、RabbitMQ如何确保消息发送 ? 消息接收?
21、Rabbitmq事务消息
22、RabbitMQ死信队列、延时队列
23、RocketMQ 如何保证不丢消息
24、RocketMQ 事务消息原理
25、RocketMQ 怎么实现顺序消息
26、RocketMQ的底层实现原理
27、简述kafka的rebalance机制
28、简述kafka架构设计
29、简述rabbitmq的持久化机制
30、简述RabbitMQ的架构设计
31、简述RabbitMq的交换机类型
32、简述rabbitmq的普通集群模式
33、简述RabbitMQ架构设计
34、简述RabbitMQ事务消息机制
十、网络
![](https://i-blog.csdnimg.cn/blog_migrate/d2fb744322ac432185b9334084f9b91b.webp?x-image-process=image/format,png)
1、BIO、NIO、AIO分别是什么
2、HTTP和HTTPS的区别
3、Netty的高性能体现在哪些方面
4、Netty的线程模型是怎么样的
5、Netty是什么?和Tomcat有什么区别?特点是什么?
6、TCP的三次握手和四次挥手
7、Tomcat如何进行优化?
8、Tomcat中为什么要使用自定义类加载器
9、京东二面:TCP的三次握手和四次挥手
10、跨域请求是什么?有什么问题?怎么解决?
11、零拷贝是什么
12、浏览器发出一个请求到收到响应经历了哪些步骤?
13、蚂蚁一面:epoll和poll的区别
14、蚂蚁一面:HTTPS是如何保证安全传输的
15、如何设计一个开放授权平台
16、什么是CSRF攻击
17、什么是OAuth2.0协议P1
18、什么是SSO
19、什么是嵌入式服务器,为什么使用嵌入式服务器
20、什么是认证和授权
十一、ES&项目实战
1、ES部署时如何优化
2、ES了解多少
3、ES写入数据与查询数据的原理
4、阿里二面:聊聊你最有成就感的项目
5、阿里二面:自己最有挑战的项目、难点
6、京东二面:画出项目架构图,介绍自己所处的模块
7、京东二面:快排算法
8、京东二面:图的深度遍历和广度遍历
9、京东一面:Maven中Package和Install的区别
10、京东一面:说说你常用的Linux基本操作命令
11、京东一面:项目及主要负责的模块
12、京东一面:遇到过哪些设计模式
13、蚂蚁二面:设计模式有哪些大类,及熟悉其中哪些设计模式
14、蚂蚁一面:二叉搜索树和平衡二叉树有什么关系
最近小编也在刷面试题,然后把一些面试官常问到的,比较困惑的都搜集并且整理成笔记了,因为考虑网上很多面试题都没有答案解析,所以小编已经把2022能够问到的面试题以及答案解析都整理成合集了