自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 幂等性解析

在分布式系统中,可结合Redis令牌桶、MySQL事务日志、MQ消息去重等方案构建完整幂等体系。在分布式系统中,网络波动可能导致请求重发,幂等性设计可避免重复操作引发的数据不一致。数据库操作需保证重复执行不产生副作用,常见于支付、订单等场景。幂等性(Idempotence)是计算机科学中的重要概念,指。

2025-08-25 09:15:00 506

原创 详解 Java 中 AQS 的几大经典实现

以上是Java中常见的基于AQS的实现类,它们覆盖了互斥锁、读写锁、资源控制、线程协调等多种并发场景。使用这些类时,注意线程安全和资源管理,避免死锁。AQS的设计模式(如状态变量和队列管理)确保了这些实现的高效性和可扩展性。在实际开发中,根据需求选择合适的同步器,并参考官方文档(如包)获取更多细节。

2025-08-21 10:28:24 1226

原创 Java常见简单算法及复杂度分析

算法最好时间复杂度最坏时间复杂度空间复杂度适用场景冒泡排序OnO(n)OnOn2O(n^2)On2O1O(1)O1小规模数据或教学选择排序On2O(n^2)On2On2O(n^2)On2O1O(1)O1减少写操作次数插入排序OnO(n)OnOn2O(n^2)On2O1O(1)O1部分有序数据线性搜索O1O(1)O1OnO(n)OnO1O(1)O1无序数组二分搜索O1O(1)

2025-08-20 09:00:00 549

原创 常见数据结构及Java实现

数组:适合快速访问,但大小固定。链表:动态大小,插入删除高效。栈和队列:管理数据顺序,分别用于LIFO和FIFO场景。二叉树:高效搜索和排序基础。哈希表:快速键值查找。在实际应用中,Java标准库(如ArrayListLinkedListHashMap)提供了优化实现。建议根据需求选择合适结构,例如搜索用树结构,缓存用哈希表。复杂度分析有助于预测性能,如平均查找时间在哈希表中为O1O(1)O1,在二叉搜索树中为Olog⁡nO(\log n)Ologn。

2025-08-19 11:32:38 444

原创 常见的 Bash 命令及简单脚本

可使脚本遇到错误时自动退出,避免后续错误执行。mv 旧文件 新文件。[ -f 文件名 ][ -d 目录名 ]

2025-08-19 10:05:59 589

原创 深入浅出数据库范式:告别冗余,解锁高效存储

范式级别关系:1NF⊂\subset⊂2NF⊂\subset⊂3NF⊂\subset⊂BCNF⊂\subset⊂4NF⊂\subset⊂5NF(符号 $ \subset $ 表示包含关系)。优点:减少冗余、提高数据完整性、避免异常。缺点:高级范式可能导致表过多,影响查询性能;设计时需结合实际需求(如反规范化)。在实际数据库设计中,建议从1NF开始逐步优化,使用函数依赖分析工具辅助。例如,通过函数依赖图验证范式级别。

2025-08-18 09:36:20 720

原创 Java 项目吞吐量优化实战指南

综合应用:上述方法需结合使用(如并发+异步+数据库优化)。例如,在高并发Web应用中,线程池管理请求,异步处理I/O,连接池优化数据库。测试驱动:使用JMeter或Gatling进行压力测试,监控吞吐量变化(目标值如QPS:每秒查询数)。注意事项:避免过度优化(如线程过多导致资源耗尽);根据应用场景选择方法(例如I/O密集型优先异步,CPU密集型优先并发)。始终监控JVM指标(如GC日志和CPU使用率),确保优化有效。

2025-08-15 15:05:03 1129

原创 Redis Key过期事件监听Java实现

Redis键空间通知原理事件发布/订阅模型expired事件触发条件应用场景自动清理关联数据延时任务执行会话超时管理。

2025-08-13 10:09:13 395

原创 OpenFeign与Dubbo跨服务调用实现详解

【代码】OpenFeign与Dubbo跨服务调用实现详解。

2025-08-11 10:31:12 530

原创 CAP理论详解

SPC∩A∩P∅P。

2025-08-07 09:23:48 418

原创 AQS 为什么使用双向链表?

解释 AQS 的基本功能:提供模板方法,如acquire()和release(),用于构建同步器。描述 AQS 的核心数据结构:基于链表的等待队列(CLH 队列变体)。强调链表的重要性:作为线程排队机制,支持 FIFO 顺序和可中断操作。性能对比表操作双向链表时间复杂度单向链表时间复杂度AQS 场景影响节点插入O1O(1)O1O1O(1)O1类似,但双向更稳定节点移除O1O(1)O1OnO(n)On双向显著优势遍历检查O1O(1)O1。

2025-08-05 16:06:49 807

原创 【Redis数据结构详解】特点、用途与实际应用

核心概念:解释Redis数据结构的核心原则,如内存存储、键值对模型和原子操作。数据结构列表:列出Redis支持的主要数据结构,包括:String(字符串)List(列表)Set(集合)Hash(哈希)Sorted Set(有序集合)其他扩展结构(如Bitmaps、HyperLogLogs、Geospatial indexes)A. String(字符串)特点二进制安全,支持文本、数字或二进制数据。支持原子操作(如INCR、DECR)。高效内存使用。用途。

2025-08-02 11:30:00 1149

原创 Java实现MySQL与Redis数据一致性:最终一致性与强一致性方案

【代码】Java实现MySQL与Redis数据一致性:最终一致性与强一致性方案。

2025-08-01 10:17:46 1036

原创 【Java23种设计模式】:模板方法模式

模板方法模式属于行为型设计模式,定义一个操作中的算法骨架,将某些步骤延迟到子类中实现。模板方法使得子类可以不改变算法结构的情况下重新定义某些特定步骤。// 模板方法:定义算法骨架(final 防止子类覆盖)step1();step2();step3();// 抽象方法:子类必须实现// 具体方法:默认实现System.out.println("AbstractClass: 默认步骤3");// 钩子方法:子类可选覆盖。

2025-07-31 10:01:13 461

原创 Java + MySQL 读写分离实战指南,小白也能快速落地

MySQL 读写分离是提高数据库性能的常用方案,核心思想是写操作(INSERT/UPDATE/DELETE)路由到主库(Master),读操作(SELECT)路由到从库(Slave),通过主从复制保证数据一致性。以下从数据库层面和 Java 代码层面详细说明实现方式。

2025-07-29 15:14:50 728

原创 Java动态代理详解

【代码】Java动态代理详解。

2025-07-28 09:25:42 304

原创 EXPLAIN关键字详解:优化SQL查询性能的利器

输出结果是一个表格,包含多个关键字段。

2025-07-26 07:15:00 1407

原创 【MySQL计数优化】:COUNT(*) vs COUNT(1) 详解与技术选型指南

此大纲聚焦技术本质,通过执行计划分析、基准测试、优化方案三层递进,帮助开发者建立科学选型认知。

2025-07-24 13:21:02 548

原创 【避坑】让 MySQL 索引 “躺平” 的 10 种情况,开发者必看的性能优化红线

【代码】【MySQL索引失效场景】

2025-07-24 11:49:39 1367

原创 【Spring事务@Transactional失效场景】

Java注解@Transactional用于声明式事务管理,支持传播行为、隔离级别等配置,但在内部方法调用、非public方法、异常处理不当等场景下会失效。常见问题包括数据库引擎不支持、多数据源未配置事务管理器等。解决方案包括确保方法由Spring代理调用、正确设置rollbackFor、检查数据库配置等。合理使用@Transactional需注意代理机制和异常处理,避免事务失效。

2025-07-22 17:38:42 386

原创 【解决:You can‘t specify target table ‘merchant_data_record‘ for update in FROM clause】

MySQL在执行UPDATE或DELETE语句时,如果子查询中引用了待更新的目标表(如本例中的。以上方法均能绕过MySQL的语法限制,选择时需结合具体业务场景和数据量权衡。这是MySQL的语法限制,旨在避免数据一致性问题。上述SQL会报错,因为子查询直接引用了外层UPDATE的目标表。通过JOIN关联目标表与筛选条件,直接更新符合条件的记录。在单条UPDATE中同时指定目标表和关联条件。通过中间表隔离子查询和目标表,避免直接引用。,导致MySQL无法确定更新顺序。

2025-07-22 10:19:42 390

原创 【解决Java异常:java.lang.ArithmeticException 的全面指南】

预防策略代码审查时重点关注算术操作。使用静态分析工具(如SonarQube)检测潜在除零风险。在设计中采用防御性编程(Defensive Programming)原则。常见误区误以为该异常只发生在除法中(实际包括其他算术操作)。忽略整数溢出风险(Java中整数类型有范围限制)。总结重申的核心原因和修复方法。强调测试的重要性:编写测试用例覆盖边界值(如除数为0)。鼓励开发者提升代码鲁棒性,确保应用稳定性。此大纲基于Java标准库文档和常见开发实践构建,所有代码示例真实可复现。

2025-07-21 17:37:23 932

原创 消息队列生产环境血泪史:消息丢失、重复消费、堆积... 全靠这篇起死回生

这个大纲确保了逻辑渐进性:先从问题根源分析,再到具体解决步骤,最后总结全局策略。文章可进一步扩展为详细技术博客,包括代码示例(如Python或Java实现)和配置片段,以增强实用性。

2025-07-19 14:47:32 614

原创 百万级数据入库卡成狗?这套 Java+MyBatis 提速方案让你秒级搞定

百万级数据入库卡成狗?这套 Java+MyBatis 提速方案让你秒级搞定

2025-07-18 16:44:00 1151 2

原创 雪花算法在多线程环境下重复ID问题处理

雪花算法在多线程环境下重复ID问题处理

2025-07-18 09:15:00 1142

原创 【java.sql.SQLIntegrityConstraintViolationException报错分析】

java.sql.SQLIntegrityConstraintViolationException报错分析

2025-07-15 14:27:49 841

空空如也

空空如也

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

TA关注的人

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