自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 问答 (1)
  • 收藏
  • 关注

原创 数据库锁机制

数据库锁是保证数据一致性和事务隔离性的核心技术,不同类型的数据库锁适用于不同的并发场景。

2025-04-14 13:45:53 1286

原创 行锁(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 Boot 中应用的设计模式

Spring Boot 作为 Spring 框架的扩展,广泛使用了多种经典设计模式。

2025-04-13 18:46:49 899

原创 MySQL与Oracle深度对比

Oracle特点NUMBER。

2025-04-13 18:44:54 932

原创 密码加密方式

密码安全是一个持续的过程,需要结合加密算法、系统设计和用户教育共同保障。:加密解密使用相同密钥。:公钥加密,私钥解密。

2025-04-13 18:43:05 507

原创 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

原创 票据剩余区间计算解决方案

【代码】票据剩余区间计算解决方案。

2025-04-06 13:03:03 489

原创 synchronized 锁升级机制详解

Java中的锁会经历一个从无锁到偏向锁,再到轻量级锁,最后到重量级锁的升级过程,这种优化称为或。

2025-04-05 19:16:48 1150

原创 JVM 内存区域详解

Java 虚拟机(JVM)的内存区域划分为多个部分,每个部分有特定的用途和管理机制。

2025-04-05 19:15:40 1076

原创 二级索引详解

二级索引(Secondary Index)是数据库系统中除主键索引外的附加索引结构,用于加速基于非主键列的查询操作。

2025-04-04 18:42:51 937

原创 Redis分布式锁详解

分布式锁是在分布式系统中实现互斥访问共享资源的重要机制。Redis因其高性能和原子性操作特性,常被用来实现分布式锁。

2025-04-04 18:41:45 386

原创 如何在Redis容量限制下保持热点数据

当数据库有100万条数据但Redis只能保存10万条时,需要智能的策略来确保Redis中存储的都是最常访问的热点数据。

2025-04-04 18:39:58 662

原创 Redis 数据类型详解

Redis 是一个高性能的键值存储系统,支持多种数据类型,每种类型都有其特定的使用场景和操作命令。

2025-04-04 18:39:27 962

原创 Java 线程池全面解析

corePoolSize, // 核心线程数maximumPoolSize, // 最大线程数keepAliveTime, // 空闲线程存活时间TimeUnit.MILLISECONDS, // 时间单位new LinkedBlockingQueue<>(capacity), // 工作队列Executors.defaultThreadFactory(), // 线程工厂new ThreadPoolExecutor.AbortPolicy() // 拒绝策略优点可精确控制所有参数。

2025-04-04 18:38:33 1539

原创 object中的方法,和String类常用api

String 是 Java 中最常用的不可变字符序列类,提供丰富的操作方法。

2025-04-04 18:35:54 913

原创 聚簇索引与非聚簇索引详解

✅ 事实:只有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

原创 缓存穿透、雪崩、击穿

缓存穿透是指查询一个。

2025-03-22 17:57:53 561

原创 Java类的加载过程

Java 类的加载过程是 Java 虚拟机(JVM)将类的字节码文件加载到内存中,并转换为 JVM 可以使用的数据结构的过程。类的加载过程是 Java 程序运行的基础,它确保了类的正确性和安全性。以下是 Java 类加载过程的详细说明:类的加载是按需加载的,即在以下情况下会触发类的加载:类的加载过程可以分为以下三个阶段:加载阶段的任务是将类的字节码文件( 文件)加载到内存中,并生成一个 对象。链接阶段的任务是将类的二进制数据合并到 JVM 的运行时状态中,分为以下三个步骤:验证阶段的任务是确保加载的字节码

2025-03-22 17:48:19 600

原创 dockers数据卷挂载和文件挂载

在 Docker 中,和是两种常用的方式,用于将主机文件或目录与容器内的文件或目录进行映射。它们的主要目的是实现数据的持久化和共享。

2025-03-22 17:46:15 1103

原创 常用的 MyBatis 标签及其作用

MyBatis 提供了丰富的 XML 标签来定义 SQL 语句、参数映射、结果映射以及动态 SQL。

2025-03-21 11:13:31 864

原创 什么情况下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

原创 线程池学习

线程池(ThreadPool)是一种线程管理机制,它通过维护一组线程来执行任务,避免了频繁创建和销毁线程的开销。Java 提供了。

2025-03-19 10:34:43 839

原创 SpringBoot启动流程

Spring Boot 的启动流程是其核心机制之一,它通过简化配置和自动化加载,让开发者能够快速构建和运行 Spring 应用程序。以下是 Spring Boot 启动流程的详细步骤:Spring Boot 应用的启动通常从 方法开始,调用 方法。例如:2. Spring Boot 启动流程详解阶段 1:初始化 加载应用上下文初始器(ApplicationContextInitializer):加载应用事件监听器(ApplicationListener):推断应用类型:设置主配置类:发布

2025-03-18 11:19:22 775

原创 springboot的自动配置原理

开发者可以创建自己的自动配置类,并将其注册到。

2025-03-18 09:33:28 286

原创 @SpringBootApplication注解

是 Spring Boot 中最核心的注解之一,它是一个组合注解,用于简化 Spring Boot 应用的配置。通过使用这个注解,开发者可以快速启动一个 Spring Boot 应用,而无需编写大量的配置代码。下面我们来详细解析注解的作用和实现原理。

2025-03-18 09:32:28 448

原创 spring动态代理是在生命周期的哪个阶段实现的

Spring AOP 的动态代理是在 Bean 生命周期的。

2025-03-17 17:44:21 1379

原创 spring bean的生命周期和循环依赖

实例化属性赋值初始化(等)使用销毁(等)开发者可以通过实现特定的接口或配置方法来干预Bean的生命周期,从而实现更灵活的控制。如果你在面试中被问到这个问题,可以结合实际项目经验,谈谈你是如何利用Bean生命周期特性(如或自定义)来解决实际问题的,这样会让回答更有深度和说服力。这是一个非常好的问题!Spring使用三级缓存而不是二级缓存来解决循环依赖问题,主要是为了在保证功能正确性的同时,兼顾性能和设计的灵活性。下面我们来详细分析为什么需要三级缓存,以及二级缓存为什么不能满足需求。

2025-03-17 17:41:43 1481

spring动态代理是在生命周期的哪个阶段实现的

spring动态代理是在生命周期的哪个阶段实现的

2025-04-07

SpringBoot启动流程

SpringBoot启动流程

2025-04-07

springboot的自动配置原理

springboot的自动配置原理

2025-04-07

spring bean的生命周期和循环依赖

spring bean的生命周期和循环依赖

2025-04-07

@SpringBootApplication注解

@SpringBootApplication注解

2025-04-07

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除