自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(378)
  • 资源 (1)
  • 收藏
  • 关注

原创 布隆过滤器原理与Spring Boot实战

本地实现:Guava BloomFilter,适合单机场景分布式实现:Redis + Redisson,适合集群环境核心应用:缓存穿透防护、数据去重、快速存在性检查合理使用布隆过滤器能显著提升系统性能,但要注意误判特性和参数调优。

2025-08-06 14:00:57 432

原创 【Java】用户线程和守护线程概念及示例代码

Java 线程,用户线程和守护线程的区别

2025-07-15 10:28:18 467

原创 【设计模式】责任链+模板+工厂模式使用模板

本文通过一个Java示例展示了如何结合责任链, 模版,工厂设计模式,编写优雅、解耦、高内聚且高复用的代码

2025-05-22 20:41:24 606

原创 深入了解 MySQL 的 EXPLAIN 命令

MySQL explain 命令深入理解

2024-07-13 16:18:01 1365

原创 Rustdesk 自建服务器教程

我是xiucai,一位后端开发工程师。如果你对我感兴趣,请移步我的个人博客,进一步了解。本文首发于个人博客,未经许可禁止转载💌。

2024-06-02 20:28:49 15880 1

原创 【Java 开发】模版模式使用模版

/ 请求命令基类// 其他通用字段// 具体请求命令类// 关闭订单特有的字段// 接受订单特有的字段// 拒绝订单特有的字段// 抽象执行器基类@Component// 通用的订单处理逻辑// 调用子类实现的特定处理逻辑// 其他通用的后续处理// ...// 通用的请求校验逻辑// 具体执行器类@Service@Override// 处理关闭订单的特定逻辑@Service@Override// 处理接受订单的特定逻辑@Service。

2024-05-17 20:28:42 365

原创 Redis 持久化详解:RDB 与 AOF 的配置、触发机制和实际测试

Redis持久化详解:RDB与AOF配置、触发机制及实际测试,深入探讨数据快照、追加备份,以及持久化工作原理。通过实测手动触发与自动触发,全面了解Redis数据保障机制。

2024-01-25 20:05:20 3487

原创 【Java 开发】策略+工厂模式使用模版

使用策略 + 工厂设计模式可以有效地简化大量的 if-else 逻辑。通过定义统一的策略接口和多个具体策略实现,结合工厂类进行管理,实现了代码的高内聚低耦合。这样,根据不同的需求类型,可以灵活地切换策略,提高了代码的可维护性和可扩展性。

2024-01-10 16:35:42 770

原创 【Java】三种方案实现 Redis 分布式锁

三种 Redis 分布式锁的实现方案

2023-11-04 16:43:18 8797

原创 Redis 集群搭建教程

本文介绍如何在一台服务器上伪集群搭建 Redis 高可用集群,包括环境准备、安装、配置、连接、故障模拟等步骤。通过模拟故障,演示了 Redis 集群的容错性。详细教程请参考作者的博客。

2023-09-25 20:33:32 915

原创 Redis 哨兵模式搭建教程

本文通过3台CentOS服务器搭建Redis哨兵高可用集群。介绍了准备环境、安装配置Redis和哨兵的步骤,以及启动、测试数据同步和主节点故障切换的过程,是一份完整的Redis哨兵模式实践指南。

2023-09-23 16:50:14 5322 3

原创 【Redis】Bitmap 使用及应用场景

本文首先介绍了Redis中的6个Bitmap相关命令,包括SETBIT、GETBIT、BITCOUNT等,并附带示例说明每个命令的用法。然后给出了5个使用Bitmap的应用场景,如统计用户在线状态、用户打卡记录、计算连续签到用户等,都可以通过将用户ID映射为Bitmap的offset,从而实现快速查询和统计

2023-09-07 20:39:12 3916

原创 【Java】线上 CPU 100% 问题排查

Java 面试题中,服务器 cpu 100% 的排查方案

2023-08-24 16:32:18 786

原创 【Java】高并发下如何防止库存超发

三种方案,如何防止高并发下的库存超发

2022-06-18 17:59:14 6631 1

原创 【Git】撤销分支的合并Merge

背景某次,因为蛋疼的原因,不小心把不该合并的分支合到了dev或者master分支,影响到了需求上线或其他。这时候就需要撤销某次的合并了。解决方案方案一1、找到最后一次提交到master分支的commit_id,即merge前的commit_id,也就是目标要回退到的commit_id。本图为Idea 2021.3 版本查看commit_id的方式。(点开git提交历史,查看代码改动的时候,左边的剪头指的那个)2、在当前分支,打开终端,执行命令回退 git reset --hard comm

2022-05-13 21:11:03 44457 1

原创 【IDEA】插件推荐(效率++)

大大提升效率的IDEA插件推荐

2022-03-03 20:42:08 4318

原创 【Java】LocalDate、LocalTime、LocalDateTime方法测试

Code:import java.time.Duration;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.format.DateTimeFormatter;public class Test { public static void main(String[] args) throws InterruptedException

2021-07-25 15:08:09 500

原创 【编程】AI Coding 工作流

【代码】【编程】AI Coding 工作流。

2025-12-16 21:24:10 23

原创 【后端】开发过程中如何尽可能的减少 bug 的产生

2025-12-12 10:27:33 215

原创 AI Prompt

【代码】AI Prompt。

2025-12-09 20:24:08 142

原创 实用网页小工具

实用网页小工具

2025-11-25 10:59:17 411

原创 MySQL 8 查询逗号分隔字符串

MySQL 8, JSON_OVERLAPS, SQL, 逗号分隔, 字符串查询, FIND_IN_SET, 数据库设计。

2025-10-31 15:51:38 537

原创 【Java】Stream 流工具类

Java Stream 流工具类

2025-10-27 14:12:30 162

原创 【git】rebase 和 merge 区别及使用建议

【代码】【git】rebase 和 merge 区别及使用建议。

2025-10-25 19:00:15 221

原创 OpenFeign 优缺点及和 Dubbo 对比

OpenFeign 是集成于 Spring Cloud 生态的声明式 HTTP 客户端。其核心价值在于通过接口化、注解化的方式定义并调用 RESTful 服务,旨在简化服务间的 HTTP 通信。Apache Dubbo 是一款高性能、轻量级的开源 RPC 框架。其设计目标是提供面向接口的、透明化的远程服务调用,以及强大的服务治理能力。

2025-09-09 20:59:53 623

原创 Java 代码设计原则:从理论到代码实践

在软件工程领域,代码的质量不仅取决于其功能实现,更在于其结构、可读性、可维护性和可扩展性。遵循行业公认的设计原则是提升代码质量的关键。本文将精炼地介绍Java开发中最核心的设计原则,并提供完整的代码示例,帮助开发者构建更稳健、更灵活的系统。: 系统中的每一部分知识都应有单一、明确、权威的表示。SOLID是面向对象设计的五个基本原则的缩写,它们共同指导开发者创建易于理解和维护的软件。: 采用更通用的抽象,避免破坏继承的行为约定。: 将接口拆分为更小的、功能单一的接口。: 将职责分离到不同的类中。

2025-08-31 17:49:01 953

原创 MySQL8 排名窗口函数实战

在数据库查询与数据分析中,对数据分组并进行排名是一项常见任务。SQL 窗口函数为此提供了高效的解决方案。本文旨在阐明三个核心排名函数——RANK()与——的功能、差异及适用场景。

2025-08-26 20:29:55 456

原创 Java 线程生命周期的六种状态详解

对于 Java 并发编程而言,深入理解线程的生命周期模型是一项基本要求。该模型为分析并发行为、诊断性能问题以及解决死锁等提供了理论基础。在 Java 虚拟机(JVM)层面,线程的状态被精确地定义在枚举中,共包含六种状态。

2025-08-23 12:50:39 372

原创 MySQL深分页慢问题及性能优化

策略优点缺点适用场景延迟关联功能完整,性能提升显著SQL复杂,深度分页仍有瓶颈需要跳转页码的传统分页键集分页性能最佳且稳定无法跳页无限滚动、上一页/下一页业务限制实现简单,规避问题功能受限搜索结果等多数常规列表结论:在设计分页功能时,应优先考虑键集分页方案以获得最佳性能。如果必须支持跳转任意页码,延迟关联是一个有效的折中选择。根据实际业务需求选择最合适的策略,是解决深分页问题的关键。

2025-08-21 21:44:05 844

原创 Java ReentrantLock 核心用法

是 Java 中处理并发问题的强大工具,用于解决多线程下的竞态条件(如count++操作导致的数据不一致)。本文旨在展示其最核心、最标准的用法。

2025-08-20 17:30:18 326

原创 Redisson 分布式锁核心机制解析

Redisson 分布式锁(RLock)的可靠性依赖于其三大核心机制:用于保证原子性的 Lua 脚本、用于自动续期的看门狗(Watchdog)以及用于高效等待的发布/订阅(Pub/Sub)模型。本文旨在解析这三个机制的内部工作原理。

2025-08-19 10:33:40 443

原创 深入理解“看门狗”机制:一种优雅的自动续期模式

在分布式系统中,资源(如分布式锁)的租约管理是一个核心挑战。为锁设置固定过期时间,可能因业务执行超时而导致锁提前释放;若不设过期时间,又可能因服务宕机而造成永久死锁。自动续期机制,即“看门狗”(Watchdog),是应对此问题的标准解决方案。本文将通过一个极简的实现,深入剖析该模式的内在机理。

2025-08-18 17:44:44 499

原创 MySQL 全文索引指南

【代码】MySQL 全文索引指南。

2025-08-16 17:45:48 303

原创 【LeetCode】102 - 二叉树的层序遍历

给你二叉树的根节点 root,返回其节点值的层序遍历(即逐层地,从左到右访问所有节点)。算法按层级正确遍历,符合预期结果。

2025-08-10 11:40:18 318

原创 【LeetCode】链表反转实现与测试

本文介绍了一种使用 ArrayList 和 Collections.reverse() 方法来实现链表反转的解决方案,虽然这种方法在空间复杂度上不是最优的,但代码简洁易懂。

2025-07-30 20:29:39 306

原创 【LeetCode】LRU 缓存 题解

LRU (Least Recently Used) 缓存是一种常用的缓存淘汰策略,当缓存满了需要删除数据时,优先删除最久未使用的数据。HashMap 解决了快速查找的问题双向链表解决了维护访问顺序的问题通过将最近访问的元素移到链表尾部,最久未使用的元素自然就在链表头部这种设计既保证了操作的高效性,又满足了 LRU 策略的需求。

2025-07-27 18:12:16 559

原创 【双向链表】Java 双向链表实现详解

【代码】【双向链表】实现、详解

2025-07-20 16:48:12 156

原创 【Java】查看当前 Java 使用的垃圾回收器

【代码】【Java】查看当前 Java 使用的垃圾回收器。

2025-04-13 20:50:01 648

原创 【Java】将 Java 代码打包成 Jar 包

首先,确保已经安装了 JDK。然后在本地终端中进入 Java 源代码所在的目录,编译代码。为了让 Jar 包能够自动找到主类,需要创建一个。注意 Main-Class 下面必须有一个换行。这会在当前目录下生成。打包成 Jar 包。这会在当前目录下生成。

2024-09-05 15:53:58 1814

原创 Mac/Linux 上安装和卸载 SDKMAN 及管理多个 JDK

Mac 上安装和卸载 SDKMAN 及管理多个 JDK

2024-08-01 11:47:14 2977 1

Typora主题大全,里面onedark等主题

1、打开Typora,点击文件,编号设置选择外观,打开主题文件夹 2、将下载好的压缩包中的.css文件和同名的文件夹等解压到主题文件夹中。 3、重启Typora并重新选择主题我们重新打开 typora,然后在主题中选择自己下载好的主题就行了,下面为主题效果

2021-01-18

空空如也

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

TA关注的人

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