摘要: 一、基础概念 Full GC(全局垃圾回收) 是指 清理整个Java堆内存(包括年轻代和老年代)以及方法区(元空间) 的垃圾回收过程。它是Java虚拟机中最耗时、对应用性能影响最大的一种垃圾回收操作,通常会导致应用程序线程的暂停 二、详细解释 要深入理解 Full GC,我们需要先了解Java内存模 阅读全文
posted @ 2025-09-27 01:55 jock_javaEE 阅读(91) 评论(0) 推荐(0)
摘要: 一、在Seata的AT模式中,事务的提交也是分成了2阶段的 一阶段 1、RM 针对本次要执行的本地事务的SQL进行解析,得到SQL的类型、修改的表以及where条件等信息 2、RM 根据 SQL 解析的结果,先进行一次查询,根据查询结果生成相应的 before image 前置镜像(变更前数据快照) 阅读全文
posted @ 2025-09-24 08:11 jock_javaEE 阅读(21) 评论(0) 推荐(0)
摘要: 一、在Innodb中,通过 MVCC 解决脏读和不可重复读,通过 MVCC+间隙锁解决幻读的 1、脏读的解决 脏读指一个事务可以读取另一个事务未提交的数据,导致数据不一致。 在读已提交(Read Committed)隔离级别下,事务只能读取到其他事务已经提交的数据版本。因此,如果一个事务在读取数据时 阅读全文
posted @ 2025-09-16 16:01 jock_javaEE 阅读(31) 评论(0) 推荐(0)
摘要: 一、基础概念 Java中的线程池本身并不提供内置的方式来保证任务的顺序执行的,因为线程池的设计目的是为了提高并发性能和效率,如果顺序执行的话,那就和单线程没区别了。 但是如果被问到想要实现这个功能该怎么做,有以下两种方式 1、使用单线程线程池 我们可以使用 SingleThreadExecutor这 阅读全文
posted @ 2025-09-16 01:30 jock_javaEE 阅读(68) 评论(0) 推荐(0)
摘要: 1、static 的必要性:全局唯一实例 问题示例(非静态): public class UserService { // 错误:每个实例都有自己的 ThreadLocal private ThreadLocal<User> userThreadLocal = new ThreadLocal<>() 阅读全文
posted @ 2025-09-15 20:47 jock_javaEE 阅读(29) 评论(0) 推荐(0)
摘要: 一、基础概念 我们说过,没办法直接在主线程的 try-catch 中捕获子线程的异常。但是,有的时候子线程中会开启一些IO链接,网络资源等,那么,如何在抛出异常的时候进行处理呢 ? 有几个方案可以实现 ? 1、使用Future 如果想要在主线程能够捕获子线程的异常,可以考虑使用 Callable 和 阅读全文
posted @ 2025-09-15 08:35 jock_javaEE 阅读(37) 评论(0) 推荐(0)
摘要: 一、基础概念 在 Java中,主线程不能直接捕获子线程抛出的异常的!主要是因为子线程和主线程是独立的执行单元, 它们的执行是并发的,因此主线程无法捕获子线程的异常。子线程的异常通常由子线程自己处理或通过适当的异常处理机制处理。 那么也就是说,以下代码是无法生效的 public class Main 阅读全文
posted @ 2025-09-15 08:16 jock_javaEE 阅读(7) 评论(0) 推荐(0)
摘要: 一、是否使用过Redis集群,集群的原理是什么 ? Redis Sentinal着眼于高可用,在master宕机时会自动将slave提升为master,继续提供服务 哨兵解决了高可用的问题,而 Redis Cluster集群就是终极方案,一举解决高可用和分布式问题 数据分区: 是集群最核心的功能。集 阅读全文
posted @ 2025-08-04 19:58 jock_javaEE 阅读(37) 评论(0) 推荐(0)
摘要: 一、原子性在并发编程中,和在数据库中两种不同的概念 在数据库中,事务的 ACID中原子性指的是 "要么都执行要么都回滚" 在并发编程中,原子性指的是 "操作不可拆分、不被中断" Redis既是一个数据库,又是一个支持并发编程的系统,所以,他的原子性有两种。所以,我们需要明确清楚,在问 "Lua脚本保 阅读全文
posted @ 2025-06-19 18:27 jock_javaEE 阅读(250) 评论(0) 推荐(0)
摘要: 一、基础概念 Redis中,事务和 Lua 都是保证原子性的手段, 当我们有多个命令要执行,希望他们以原子性方式执行的时候,就会考虑使用事务 或 者Lua脚本,那么他们之间有哪些区别呢 ? 二、原子性保证 事务 和 Lua都是可以保证原子性操作的,但是,这里说的原子性我们提过很多次,指的是不可拆分, 阅读全文
posted @ 2025-06-19 18:12 jock_javaEE 阅读(96) 评论(0) 推荐(0)