1.redis的集群模式
2.redis的持久化策略
3.内存淘汰策略
4.redis hash的底层结构
5.redis string底层结构
6.redis实现分布式锁,以及setnx可能存在的问题
7.spring和springboot的区别
8.springboot注入类有哪些注解,有什么区别
9.spring aop如何实现
10.动态代理有几种实现方式
11.mybatis #和$的区别
12.mysql如何选择建立哪些索引
13.mysql为什么用b+树
14.mysql有哪些锁
15.https中用到了哪些加密算法
16.tcp的粘包问题
17.linux如何查看文件
18.java锁的可重入和公平性
19.java线程的生命周期
20.wait和sleep的区别
21.什么是死锁,如何用java写个死锁
22.jvm的内存模型
23.年轻代垃圾回收算法
24.树的遍历
25.一致性哈希算法
26.编程题,字符串匹配,说可以直接暴力
二面
1.介绍部门业务
2.拷打项目
3.数据库事务的特性
4.如何实现持久性
5.binlog和redolog的区别
6.undolog
7.undolog提到了mvcc,让我介绍一下mvcc
8.什么是幻读
9.怎么解决幻读
10.mysql索引原理
11.b+树查数据的过程,b+树大概有多少叉(多少个子节点)
12.b+树的范围查询
13.b+树和b树的区别
14.主键如何设计
15.什么是RPC
16.进程间通信的方式有哪些
17.tcp四次挥手
18.编程题:区间合并
Java面试题整理2024
Java基础
面向对象
JDK、JRE、JVM之间的区别
jdk包含jre包含jvm
==和equals方法之间的区别
hashCode()和eequals()之间的关系
final关键字的作用是什么
String、StringBuffer、StringBuider的区别
重载和重写的区别
接口和抽象类的区别
List和Set的区别
ArrayList和LinkedList区别
HashMap和HashTable有什么区别?底层实现是什么?
谈谈concurrentHashMap的扩容机制
Jdk1.7到Jdk1.8 HashMap 发生了什么变化(底层)
说一下HashMap的put方法
范型中extends和super的区别
深拷贝和浅拷贝
HashMap的扩容机制原理
CopyOnWriteArrayList的底层原理是怎么样的
什么是字节码?采用字节码的好处是什么
Java中的异常体系是怎么样的
Java中有哪些类加载器
说说类加载器双亲委派模型
GC如何判断对象可以被回收
JVM中哪些是线程共享区
你们项目中如何排查JVM问题
一个对象从加载到JVM,再到被GC清除,都经历了什么过程
怎么确定一个对象到底是不是垃圾
JVM有哪些垃圾回收算法
什么是STW
JVM有哪些垃圾回收器
垃圾回收分为哪些阶段
什么是三色标记
JVM参数有哪些
Java并发
线程的生命周期?线程有几种状态
Sleep()、Wait()、join()、yield()之间的区别
对线程安全的理解
Thread和Runable的区别
对守护线程的理解
ThreadLocal的底层原理
并发、并行、串行之间的区别
并发的三大特性
Java死锁如何避免
如何理解volatile关键字
为什么用线程池?解释下线程池的参数?
线程池的底层工作原理
线程池中阻塞队列的作用?为什么是先添加队列而不是先创建最大线程?
线程池中线程复用原理
ReentrantLock中公平锁和非公平锁的底层实现
ReentrantLock中tryLock()和lock()方法的区别
CountDownLatch和Semaphore的区别和底层原理
Synchronized的偏向锁、轻量级锁和重量级锁
Synchronized和ReentrantLock的区别
谈谈你对AQS的理解,AQS如何实现可重入锁
开发框架
Spring是什么?
谈谈你对AOP的理解
谈谈你对IOC的理解
解释下Spring支持的几种bean的作用域
spring事务的实现方式和原理以及隔离级别
spring事务传播机制
spring事务什么时候会失效
什么是bean的自动装配,有哪些方式
spring中bean的创建的生命周期有哪些步骤
spring中bean是线程安全的吗
ApplicationContext和BeanFactory有什么区别
spring中的事务如何实现的
spring什么时候@transactional会失效
spring容器启动流程是怎么样的
spring用到了哪些设计模式
springboot、springmvc和spring的区别
springMVC工作流程
springMVC的主要组件
springboot自动配置原理
如何理解springboot中的starter
什么是嵌入式服务器?为什么要使用嵌入式服务器
springboot中常用注解及其底层实现
springboot是如何启动tomcat的
springboot中配置文件的加载顺序是怎么样的
mybatis的优缺点
mybatis和hibernate有哪些不同
#{}和${}的区别是什么
简述Mybatis的插件运行原理,如何编写一个插件
MySQL
ACID靠什么保证的
什么是MVCC
分表后非shading_key的查询怎么样处理,分表后的排序
MySQL主从同步原理
简述MyISAM和InnoDB的区别
简述MySQL中索引类型及对数据库的性能的影响
Explain语句结果中各个字段分表表示什么
索引覆盖是什么
最左前缀原则是什么
Innodb是如何实现事务的
B树和B+树的区别,为什么MySQL使用B+树
MySQL锁有哪些,该如何理解
MySQL慢查询该如何优化
Redis
什么是RDB和AOF
Redis的过期键的删除策略
Redis线程模型、单线程快的原因
简述Redis事务实现
Redis主从复制的核心原理
Redis有哪些数据结构?分别有哪些典型的应用场景?
Redis分布式锁底层是如何实现的?
Redis集群策略
缓存穿透、缓存击穿、缓存雪崩分别是什么
Redis和MySQL如何保证数据的一致
Redis的持久化机制
Redis单线程为什么这么快
简述Redis事务实现
分布式与微服务
什么是CAP理论
什么是BASE理论
什么是RPC
数据一致性模型有哪些
分布式ID是什么?有哪些解决方案?
分布式锁的使用场景是什么?有哪些实现方案?
什么是分布式事务?有哪些实现方案?
什么是ZAB协议
简述paxos算法
简述raft算法
为什么Zookeeper可以用来作为注册中心
Zookeeper中的领导者选举的流程是怎样的
Zookeeper集群中节点之间数据是如何同步的
Dubbo支持哪些负载均衡策略
Dubbo是如何完成服务导出的
Dubbo是如何完成服务引入的
Dubbo的架构设计是怎么样的
负载均衡算法有哪些
分布式架构下,Session共享有什么方案
简述你对RPC、RMI的理解
如何实现接口的幂等性
Zookeeper的数据模型和节点类型
简述Zookeeper的命名服务、配置管理、集群管理
简述Zookeeper中watch机制
Zookeeper和Eureka的区别
如何实现分库分表
存储拆分后如何解决唯一主键问题
雪花算法原理
如何解决不使用分区键的查询原理
SpringCloud有哪常用组件,作用是什么?
如何避免缓存穿透、缓存击穿、缓存雪崩?
分布式系统中常用的缓存方案有哪些
缓存过期都有哪些策略
常见的缓存淘汰算法
布隆过滤器原理,优缺点有哪些。
分布式缓存寻址算法
什么是Hystrix?简述实现机制
SpringCloud和Dubbo有哪些区别
什么是服务雪崩?什么是服务限流?什么是服务熔断?什么是服务降级?区别是什么
SOA、分布式、微服务之间有什么关系和区别?
怎么拆分微服务?
怎么设计出高内聚、低耦合的微服务
有没有了解过DDD领域驱动设计
什么是中台?
你的项目是怎么保证微服务敏捷开发的?
消息队列
如何进行产品选型?
简述RabbitMQ的架构设计
RabbitMQ如何确保消息发送?消息接收?
RabbitMQ事务消息
RabbitMQ死信队列、延时队列
RabbitMQ镜像队列机制
Kafka是什么
Kafka为什么吞吐量高
Kafka的Pull和Push分别有什么优缺点
为什么要使用Kafka,为什么要使用消息队列?
Kafka中的ISR、AR代表什么?ISR的伸缩指的是什么
Kafka高效文件存储设计特点
Kafka和传统消息系统之间的三个关键区别
Kafka创建Topic时如何将分区放置在不同的Broker中
Kafka的消费者如何消费数据
Kafka消费者负载均衡策略
Kafka生产数据时数据的分组策略
Kafka是怎么样体现消息顺序性的
Kafka如何实现延迟队列
RocketMQ的事务消息是如何实现的
为什么RocketMQ不使用Zookeeper作为注册中心
RocketMQ的实现原理
RocketMQ为什么速度快
消息队列如何保证消息可靠传输
消息队列有哪些作用
死信队列是什么?延时队列是什么?
如何保证消息的高效读写?
让你设计一个MQ,你会如何设计?
网络
什么是认证和授权?如何设计一个权限认证框架?
如果没有Cookie、Session还能进行身份验证吗?
什么是CRSF攻击?如何防止?
什么是OAuth2.0 协议?有哪几种认证方式?
什么是SSO?与OAuth2.0有什么关系?
如何设计一个开放授权平台?
epoll和poll的区别
TCP的三次握手和四次挥手
浏览器发出一个请求到收到响应经历了哪些步骤?
跨域请求是什么?有什么问题?怎么解决?
零拷贝是什么