- 博客(17)
- 收藏
- 关注
原创 Java面试题-Spring、SpringMVC、SpringBoot
控制反转指的是将对象的调用权交给Spring容器,由Spring来管理对象的生命周期和依赖关系。Spring中控制反转主要使用了以下几种设计模式。
2025-08-11 11:18:19
681
原创 Java面试题-Redis
RedLock是Redis的一种分布式算法,主要为了解决Redis集群下可能出现的分布式锁问题。Redis集群架构中,如果主节点崩溃且没有持久化锁的数据,那么从节点晋升后获取不到锁的信息,导致多个客户端都同时持有锁。RedLock加锁流程:Redis客户端向各个节点发送加锁请求,如果在多数节点上(N/2 + 1)上都加锁才算成功,然后汇总加锁的总耗时,锁的有效期就是过期时间减去总耗时。RedLock优点:确保分布式锁的可靠性。RedLock缺点:因为需要通知其他节点,所以有性能开销问题。
2025-08-03 13:42:23
790
原创 Java面试题-MySQL
mvcc是多版本并发控制,主要是为了提升MySQL的并发性能。MVCC在快照读的情况下解决了幻读,在当前读没有解决幻读。(普通select都是快照读,加锁为当前读)。原理:每个事务在开始时会创建一个读视图,读视图包含有一个数据的版本号,用来与数据行的版本号进行对比,来确保数据行对事务是可见的。读操作:当事务执行读操作的时候,会将当前数据行的版本号与读视图的版本号进行比较,只会读取在事务开始之间已经提交的数据行。这样其他事务对数据进行并发操作的时候,事务也可以读到一致的数据。
2025-07-31 14:53:34
500
原创 Java面试题-并发编程
synchronized是基于监视器锁(Monitor Lock)实现的,底层依赖是操作系统的互斥锁(Mutex)。每一个对象在Java中都与一个隐式的监视器相关联,在Java的对象头中有一块MarkWord区域用于存储锁的信息。使用synchronized时,线程需要获得对象的监视器锁,然后才能进入同步代码块。JVM会根据锁的竞争情况自动进行状态的变换。
2025-07-21 16:57:55
679
原创 Java 中的 OutOfMemoryError (OOM) 类型及原因
前五个都是比较常见的,面试中如果被问道“项目中有没有遇到过OOM”,可以说这几个。
2025-05-13 15:24:25
792
原创 SpringBoot整合kafka实现生产者发送消息-使用Kafka原生API
【代码】SpringBoot整合kafka实现生产者发送消息-使用Kafka原生API。
2024-09-12 22:23:05
275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅