- 博客(137)
- 问答 (1)
- 收藏
- 关注
原创 行锁(Row Locking)和MVCC(多版本并发控制)
MVCC(多版本并发控制)**是两种不同的并发控制机制,它们的使用场景和原理有显著区别。在数据库系统中,**行锁(Row Locking)现代数据库(如MySQL InnoDB)通常。
2025-04-14 13:43:18
786
原创 Docker 部署 Kafka 完整指南
通过以上配置,您可以快速部署适用于开发和测试环境的 Kafka 服务。生产环境请根据实际需求调整配置参数和安全设置。本指南将详细介绍如何使用 Docker 部署 Kafka 消息队列系统,包括单节点和集群模式的部署方式。部分,确保数据不会因容器重启而丢失。
2025-04-13 18:49:56
1558
原创 Spring @Transactional 注解
是 Spring 框架中用于的核心注解,它简化了数据库事务的操作,让开发者能够以声明的方式控制事务边界。
2025-04-10 11:21:38
1038
原创 前置通知环绕通知后置通知执行的先后顺序
在 Spring AOP 中,当**前置通知(@Before)、环绕通知(@Around)、后置通知(@AfterReturning)**同时作用于同一个方法时,它们的执行顺序遵循明确的规则。理解这一执行顺序对调试复杂 AOP 场景至关重要,尤其是在需要多个通知协同工作时。如果存在多个同类型通知(如多个。),其顺序由 @Order。控制,数值越小优先级越高。proceed()调用前。proceed()调用后。当所有通知同时存在时,
2025-04-10 11:20:44
994
原创 B+树与红黑树
理解这两种数据结构的差异,有助于在系统设计时做出合理的选择。B+树是磁盘存储时代的王者,而红黑树则在内存操作场景持续发光发热。
2025-04-09 11:21:56
606
1
原创 Spring中的BeanDefinition
BeanDefinition是Spring框架中一个核心概念,它代表了Spring容器中bean的定义信息,是Spring IoC容器管理对象的基础数据结构。
2025-04-09 11:20:25
548
原创 Spring IOC 容器加载过程
IOC(Inversion of Control,控制反转)是 Spring 框架的核心,其加载过程是 Spring 应用启动的关键阶段。
2025-04-08 09:42:55
972
原创 Java I/O 流(Input/Output Stream)
I/O 流(Input/Output Stream)是 Java 中用于处理输入/输出的核心机制,提供了读写数据(字节或字符)的统一抽象。
2025-04-08 09:41:19
1947
原创 springboot项目中常用的工具类和api
如果是Spring Boot项目,优先使用Spring生态提供的工具类(如。来简化开发、提高效率。以下是一些常用的工具类及其典型应用场景,涵盖。在Spring Boot项目中,开发者通常会依赖一些。),复杂场景再引入第三方库(如Hutool)。合理使用这些工具类可以。
2025-04-07 17:43:20
1783
2
原创 如何保证mysql和redis的数据一致性
保证 MySQL 和 Redis 的数据一致性是分布式系统中常见的挑战,因为 Redis 作为缓存层,可能存在与底层数据库数据不一致的情况。:通过 MySQL 的 Binlog 监听数据变更,触发 Redis 更新。:在更新 MySQL 前后各删除一次缓存,确保最终一致性。:所有写操作同时更新 Redis 和 MySQL。:先更新 Redis,再异步批量更新 MySQL。:在关键操作(如缓存更新)上加锁,避免并发冲突。:应用程序直接管理缓存和数据库的读写。:通过事务补偿机制保证最终一致性。
2025-04-07 17:42:48
951
原创 java.util.Collections中常用api
返回集合中的最大/最小值(自然顺序或通过。随机打乱列表顺序(常用于洗牌算法)。返回单元素或空集合(不可变)。进行自然顺序排序(元素需实现。二分查找(列表必须已排序)。是一个工具类,提供了大量。用指定对象填充所有元素。检查两个集合是否无交集。用于操作或返回集合(如。返回不可变集合视图(如。批量添加元素到集合。
2025-04-06 14:34:25
523
原创 JAVA对象创建过程和类加载过程
fill:#333;color:#333;color:#333;fill:none;加载验证准备解析初始化使用卸载。
2025-04-06 14:15:06
716
原创 如何在Redis容量限制下保持热点数据
当数据库有100万条数据但Redis只能保存10万条时,需要智能的策略来确保Redis中存储的都是最常访问的热点数据。
2025-04-04 18:39:58
662
原创 Java 线程池全面解析
corePoolSize, // 核心线程数maximumPoolSize, // 最大线程数keepAliveTime, // 空闲线程存活时间TimeUnit.MILLISECONDS, // 时间单位new LinkedBlockingQueue<>(capacity), // 工作队列Executors.defaultThreadFactory(), // 线程工厂new ThreadPoolExecutor.AbortPolicy() // 拒绝策略优点可精确控制所有参数。
2025-04-04 18:38:33
1539
原创 聚簇索引与非聚簇索引详解
✅ 事实:只有InnoDB有真正的聚簇索引,MyISAM的所有索引都是非聚簇的。✅ 事实:在InnoDB中主键默认是聚簇索引,但两者不是等价概念。✅ 事实:各有利弊,取决于具体查询场景。:“MyISAM也有聚簇索引”:“聚簇索引比非聚簇索引快”:“主键就是聚簇索引”
2025-04-04 18:35:14
694
原创 Docker 数据卷管理
Docker CLI:提供了简单易用的命令来管理数据卷,适合日常操作。Docker API:适合需要自动化管理的场景,如 CI/CD 流水线。高级管理:通过备份、恢复和权限管理,可以更好地保护和管理数据卷中的数据。通过本文,你应该能够熟练使用 Docker CLI 和 API 管理数据卷,并根据需求进行高级管理操作。希望本文对你的学习和工作有所帮助!
2025-03-23 12:39:35
500
原创 Docker 数据卷与文件挂载
数据卷:适合需要 Docker 管理数据生命周期的场景,如数据库数据、日志文件等。文件挂载:适合需要直接操作主机文件的场景,如配置文件、代码文件等。通过合理选择数据卷和文件挂载,可以更好地管理 Docker 容器中的数据持久化和共享需求。希望本文能帮助你更好地理解和使用 Docker 数据卷!
2025-03-23 12:36:45
767
原创 Java类的加载过程
Java 类的加载过程是 Java 虚拟机(JVM)将类的字节码文件加载到内存中,并转换为 JVM 可以使用的数据结构的过程。类的加载过程是 Java 程序运行的基础,它确保了类的正确性和安全性。以下是 Java 类加载过程的详细说明:类的加载是按需加载的,即在以下情况下会触发类的加载:类的加载过程可以分为以下三个阶段:加载阶段的任务是将类的字节码文件( 文件)加载到内存中,并生成一个 对象。链接阶段的任务是将类的二进制数据合并到 JVM 的运行时状态中,分为以下三个步骤:验证阶段的任务是确保加载的字节码
2025-03-22 17:48:19
600
原创 dockers数据卷挂载和文件挂载
在 Docker 中,和是两种常用的方式,用于将主机文件或目录与容器内的文件或目录进行映射。它们的主要目的是实现数据的持久化和共享。
2025-03-22 17:46:15
1103
原创 什么情况下spring的事务会失效
事务方法未被 Spring 代理。事务传播行为配置不当。异常未被正确捕获。事务管理器配置错误。事务方法被非事务方法调用。多线程环境下事务失效。数据库不支持事务。事务超时或只读配置不当。事务方法被 final 或 static 修饰。事务方法被嵌套调用。在开发中,需要根据具体场景仔细排查和解决这些问题,以确保事务的正确性。
2025-03-21 10:52:50
386
原创 Docker 部署 XXL-JOB
XXL-JOB 是一个分布式任务调度平台,核心设计目标是开发简单、易扩展、易维护。它支持多种任务调度模式(如定时任务、Cron 表达式任务等),并提供了丰富的管理界面和监控功能。可以通过挂载配置文件的方式自定义 XXL-JOB 的配置。
2025-03-19 10:38:59
1422
原创 SpringBoot启动流程
Spring Boot 的启动流程是其核心机制之一,它通过简化配置和自动化加载,让开发者能够快速构建和运行 Spring 应用程序。以下是 Spring Boot 启动流程的详细步骤:Spring Boot 应用的启动通常从 方法开始,调用 方法。例如:2. Spring Boot 启动流程详解阶段 1:初始化 加载应用上下文初始器(ApplicationContextInitializer):加载应用事件监听器(ApplicationListener):推断应用类型:设置主配置类:发布
2025-03-18 11:19:22
775
原创 @SpringBootApplication注解
是 Spring Boot 中最核心的注解之一,它是一个组合注解,用于简化 Spring Boot 应用的配置。通过使用这个注解,开发者可以快速启动一个 Spring Boot 应用,而无需编写大量的配置代码。下面我们来详细解析注解的作用和实现原理。
2025-03-18 09:32:28
448
原创 spring bean的生命周期和循环依赖
实例化属性赋值初始化(等)使用销毁(等)开发者可以通过实现特定的接口或配置方法来干预Bean的生命周期,从而实现更灵活的控制。如果你在面试中被问到这个问题,可以结合实际项目经验,谈谈你是如何利用Bean生命周期特性(如或自定义)来解决实际问题的,这样会让回答更有深度和说服力。这是一个非常好的问题!Spring使用三级缓存而不是二级缓存来解决循环依赖问题,主要是为了在保证功能正确性的同时,兼顾性能和设计的灵活性。下面我们来详细分析为什么需要三级缓存,以及二级缓存为什么不能满足需求。
2025-03-17 17:41:43
1481
springboot转ssm框架
2022-06-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人