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的三次握手和四次挥手

浏览器发出一个请求到收到响应经历了哪些步骤?

跨域请求是什么?有什么问题?怎么解决?

零拷贝是什么