自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 强引用、软引用、弱引用、虚引用:从入门到实战

本文详细解析了Java中的四种引用类型:强引用、软引用、弱引用和虚引用,并探讨了它们在内存管理和垃圾回收中的应用。强引用是默认的引用类型,对象只有在强引用被取消时才会被回收;软引用适用于内存敏感的缓存,在内存不足时会被回收;弱引用在下次GC时会被回收,常用于防止内存泄漏;虚引用则用于追踪对象回收时机,执行资源清理。通过多个代码示例,文章展示了这些引用类型的具体应用场景,如缓存、监听器管理和资源清理等。合理选择引用类型有助于在内存管理和性能优化之间找到平衡,避免滥用导致性能问题。

2025-05-21 11:10:50 148

原创 Java中的锁机制全解析:从synchronized到分布式锁

在多线程编程中,锁是保证线程安全的核心工具。本文将详解Java中常见的锁机制及其实际应用场景,帮助开发者选择最合适的锁方案。

2025-05-16 16:05:06 376

原创 深度剖析:为什么 Spring 和 IDEA 都不推荐使用 @Autowired 注解

在 Spring 框架开发中,@Autowired 注解曾经是依赖注入(DI)的“标配”,开发者习惯用它快速实现 Bean 的自动装配。然而,随着 Spring 版本的迭代和开发实践的演进,官方文档和主流 IDE(如 IntelliJ IDEA)逐渐不推荐直接使用 @Autowired 注解,甚至会在代码中给出警告提示。这背后隐藏着哪些设计哲学和工程问题?本文将从技术原理和最佳实践的角度,解析这一变化的原因。

2025-05-15 10:57:26 825

原创 Java实现分布式锁看门狗:从原理到实践的完整指南

Java代码实现分布式锁看门狗机制,深入讲解设计原理与实现细节,并提供可直接在生产环境使用的优化方案。

2025-05-12 15:50:11 336

原创 Redisson在业务处理中失败后的应对策略:保障分布式系统的可靠性

分布式系统中的数据一致性与高可用性一直是开发者面临的难题。作为Redis官方推荐的Java客户端,Redisson凭借其强大的分布式能力成为解决这些问题的利器。但在实际业务场景中,网络抖动、资源竞争、节点故障等问题可能导致操作失败,本文将深入探讨Redisson处理失败时的应对策略。

2025-05-12 15:18:08 463

原创 Java UUID生成如何保证唯一性?深入解析与最佳实践

在分布式系统和高并发场景中,唯一标识符(UUID) 的生成是确保数据完整性和避免冲突的关键技术之一。Java通过java.util.UUID类提供了UUID的标准实现,但许多开发者对其唯一性的底层原理和实际风险存在误解。

2025-05-07 16:16:37 775

原创 Redisson分布式锁的Key设计之道:确保业务高可靠与一致性

在分布式系统中,分布式锁是解决资源竞争、数据一致性的核心工具之一。Redisson凭借其完善的分布式锁实现(如RLock)成为Java开发者首选方案。然而,分布式锁的可靠性不仅依赖于框架本身,更与锁Key的设计密切相关。一个设计不当的锁Key可能导致锁失效、业务覆盖甚至死锁问题。本文将深入探讨如何设计Redisson分布式锁的Key,确保业务逻辑的准确性与系统的稳定性。

2025-05-07 15:59:16 848

原创 Java并发编程实战指南:从基础到应用

在当今多核处理器普及的时代,有效利用并发编程技术可以显著提升程序性能。本文将通过理论讲解与代码实践,带你掌握Java并发编程的核心技术。

2025-04-30 11:28:08 433

原创 Java位图(Bitmap)详解:从入门到实战应用

位图(Bitmap)是一种高效存储和操作大量布尔值的数据结构。本文将从基础概念讲起,逐步深入位图的原理、应用场景及Java实现,助你轻松掌握这一高频面试知识点。

2025-04-29 09:27:00 349

原创 Redisson实战:分布式系统中的五大典型应用场景

Redisson通过丰富的分布式对象(锁、集合、队列等)和易用的API,显著降低了分布式系统的开发复杂度。本文演示的五大场景仅是Redisson能力的冰山一角,更多特性如布隆过滤器、分布式信号量等,等待开发者进一步探索。

2025-04-23 15:04:05 376

原创 Redisson Watchdog实现原理与源码解析:分布式锁的自动续期机制

在分布式系统中,Redis分布式锁是解决资源竞争问题的常用方案。然而,当持有锁的客户端因GC、网络延迟或处理时间过长导致锁过期时,可能引发数据一致性问题。Redisson的Watchdog(看门狗)机制通过自动续期解决了这一痛点。本文将深入分析其实现原理,结合源码揭示其工作机制。

2025-04-23 10:06:34 698

原创 MySQL 8.0 HAVING子句深度解析:应用场景与高效实践

使用原则能写在WHERE中的条件不要放到HAVING对聚合结果过滤必须用HAVING复杂计算尽量提前到SELECT子句设计建议graph TDA[开始查询] --> B{需要聚合?B -->|是| C[GROUP BY分组]C --> D[SELECT计算聚合值]D --> E{需要过滤聚合结果?E -->|是| F[使用HAVING]B -->|否| G[使用WHERE过滤]排查工具使用EXPLAIN分析执行计划通过查看扫描行数监控避免磁盘临时表。

2025-04-17 10:33:39 900

原创 MySQL 8.0 Limit原理详解与大分页优化实战

优化方法适用场景优点缺点覆盖索引 + 延迟关联需要跳转任意页通用性强,显著减少IO需索引支持游标分页仅需连续翻页(如瀑布流)无offset,性能最优无法跳转任意页预计算偏移量高频访问的固定分页(如热门页)查询极快维护成本高,数据需稳定最佳实践优先使用游标分页,尤其是C端用户场景。必须使用offset时,通过覆盖索引减少回表。定期分析慢查询日志,针对性优化高频分页操作。

2025-04-17 09:48:09 1001

原创 Java Stream 和for循环:区别与实战对比

在Java集合操作中,for循环和Stream是两种常见的数据处理方式。前者是传统的迭代模式,后者是Java 8引入的函数式编程特性。本文将通过代码实例对比二者的核心差异,帮助开发者选择更合适的方案。

2025-04-16 15:17:28 373

原创 Reactor Core 中的 Flux:响应式数据流的核心实践

在当今高并发、高吞吐的分布式系统中,传统的同步阻塞式编程模型逐渐显露出性能瓶颈。响应式编程(Reactive Programming)通过异步非阻塞、事件驱动的设计,成为解决这一问题的关键。作为 Java 响应式编程的标杆库,Reactor Core 提供了强大的工具集,而其中的 Flux 类型则是处理多元素数据流的核心。本文将深入探讨 Flux 的核心特性、使用场景及最佳实践。

2025-04-16 09:53:21 808

原创 详解@JsonFormat和@DateTimeFormat注解:处理日期格式化的利器

在Java开发中,尤其是Spring和Spring Boot项目中,日期时间类型(如Date、LocalDateTime等)的格式化问题经常困扰开发者。例如,前端传递的日期字符串如何转换为后端对象?后端返回的日期对象如何按指定格式序列化?这时候,@JsonFormat和@DateTimeFormat两个注解可以轻松解决这些问题。本文将通过代码示例详细讲解它们的用法和区别。

2025-04-15 15:35:22 1315

原创 Spring Boot + ShardingSphere 分库分表实战:电商订单场景案例

本文通过电商系统中订单表分库分表的实际案例,结合Spring Boot和ShardingSphere框架,详细讲解如何实现水平分库分表,解决海量数据存储与查询性能问题。

2025-04-14 15:26:17 681

原创 深入解析MySQL锁机制:从原理到避坑指南

在高并发数据库场景中,锁机制是保障数据一致性的核心,也是导致性能问题的常见根源。本文将全面剖析MySQL中各类锁的工作原理,通过真实案例揭示锁冲突的解决方案,并给出性能优化实践建议。

2025-04-07 11:10:55 983

原创 MySQL事务优化实战:从原理到高性能设计

在高并发数据库场景中,事务性能直接决定了系统的吞吐量和响应速度。MySQL作为最流行的开源关系型数据库,事务优化是每个开发者/DBA的必修课。本文将深入探讨MySQL事务的优化策略,结合原理分析与实战案例,助你提升数据库性能。

2025-04-07 10:13:57 304

原创 全网最硬核的MySQL索引解析!SHOW INDEX FROM 每个字段都给你说明白!

掌握SHOW INDEX命令,相当于拿到了数据库调优的CT扫描仪。建议大家结合EXPLAIN执行计划分析,定期进行索引健康检查。遇到具体问题欢迎在评论区留言讨论!你的每个索引设计,都可能影响百万级查询的性能。且用且珍惜!

2025-04-03 14:56:52 728

原创 MySQL慢查询排查,专治各种“卡到崩溃”

做后端开发这些年,最怕的就是半夜收到监控报警:“数据库慢查询激增!”。 经历过几次生产事故后,我算是把MySQL慢查询的毛病摸透了。今天就把这些实战经验掰开了揉碎了分享给大家,专治SQL性能的各种不服!

2025-04-03 11:20:46 525

原创 MySQL建表到底要不要加外键?血泪教训总结

互联网高并发场景下绝对不要用外键!传统企业级系统可以酌情使用。

2025-03-28 16:04:46 404

原创 MySQL建表时如何正确选择数据类型?实战经验总结

在数据库表结构设计中,数据类型的选择直接影响存储效率、查询性能和数据准确性。本文结合真实开发场景,深入解析常见数据类型的选型原则,帮你避开新手常踩的坑。

2025-03-28 15:57:59 1035

原创 深入理解MySQL中的脏读、幻读、不可重复读(附实战复现源码)

在数据库开发中,事务的隔离级别直接影响数据的一致性和并发性能。很多开发者对 脏读(Dirty Read)、不可重复读(Non-Repeatable Read)、幻读(Phantom Read) 这三个概念容易混淆。本文将通过 实际场景复现+原理分析,彻底讲透它们的区别和解决方案。

2025-03-27 11:25:10 395

原创 MySQL四大索引类型全解析:从原理到实战避坑指南

不扯官方文档的片汤话,直接带你手撕MySQL四大索引类型,通过真实场景案例+避坑指南,让你真正掌握索引的应用精髓!

2025-03-27 09:10:17 1024

原创 MySQL 8.0 重磅升级:十大核心新特性全面解析与应用指南

MySQL作为最受欢迎的关系型数据库之一,其8.0版本的发布堪称里程碑式升级。本文深度剖析MySQL 8.0中开发者必须掌握的十大核心改进,结合真实应用场景与代码示例,助您全面掌握新一代数据库的强力特性。

2025-03-26 15:24:08 584

原创 MySQL事务隔离级别终极指南:程序员必须掌握的并发控制艺术

想象一下双十一凌晨,你刚抢购的订单突然显示库存不足;银行转账时对方账户余额更新延迟导致重复扣款;社区发帖后其他用户看不到内容...这些看似诡异的"bug",背后都是事务隔离级别在作祟!

2025-03-21 16:28:16 862

原创 MySQL回表示例全解:为什么你的SQL慢?底层原理+优化方案,彻底告别性能瓶颈!

你有没有遇到过这样的场景:明明已经建了索引,查询却还是慢如蜗牛?这可能是因为你的SQL经历了“回表”的折腾!今天我们就用5分钟,彻底搞懂这个MySQL性能杀手,让你的查询速度飞起来!

2025-03-21 11:32:01 581

原创 Java JDK17 Record实战:从入门到进阶案例详解

JDK17的record特性让数据类开发变得高效简洁。本文将结合真实开发场景,通过基础到高级的案例,手把手教你玩转record!

2025-03-19 09:59:01 404

原创 Redis高可用方案详解:主从复制与哨兵模式实战指南

主从复制通过将一台Redis服务器(主节点/Master)的数据实时复制到多个从节点(Slave),实现数据冗余和读写分离。主节点负责写操作,从节点默认只读。Redis主从复制与哨兵模式共同构建了高可用的基础架构,适用于大多数业务场景。然而,对于更大规模的数据分布,可进一步研究分片方案。掌握这些技术后,可有效提升系统稳定性,为业务保驾护航。

2025-03-17 15:06:45 657

原创 缓存三剑客:击穿、穿透、雪崩——从青铜到王者的防御指南

深夜12点,某电商平台突然出现诡异现象:某爆款商品页面访问量暴增,但数据库CPU飙升到98%,Redis监控却显示缓存命中率归零。这究竟是道德的沦丧,还是技术的失守?让我们揭开缓存世界三大杀手的真面目。

2025-03-17 14:34:19 396

原创 Redis配置文件redis.conf深度解析:从核心参数到性能调优实战

正确的配置是Redis高性能的基石。建议根据业务特点进行针对性调优

2025-03-13 13:18:55 1008

原创 Redis内存淘汰策略详解:如何选择与配置最佳策略

当Redis内存达到maxmemory限制时,根据配置策略自动删除部分键值对。策略选择直接影响系统性能和业务逻辑,需根据数据特征谨慎选择。

2025-03-12 16:07:59 637

原创 Redis五大核心数据结构实战解析:真实场景与Java代码实现

在面试中必问的就是你在开发中用到过redis吗?这五种基本数据类型都是怎么用的具体场景是啥?等等这样的问题,下面就记录下五种基本数据类型的应用场景。

2025-03-12 10:10:03 911

原创 用Redis五大核心数据类型解决真实开发痛点:从电商秒杀到社交推荐,代码级实战!

Redis不仅是缓存,更是高并发场景下的瑞士军刀!本文揭秘String、List、Hash、Set、Sorted Set五大类型在真实项目中的高阶玩法,结合Java代码手把手教你解决缓存穿透、实时排行榜、分布式锁等10大棘手问题。

2025-03-10 16:47:29 148

原创 SpringBoot整合mybatisplus

SpringBoot整合mybatisplus <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dependency>

2021-03-20 20:07:20 70

原创 欢迎使用CSDN

初识CSDN欢迎使用编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用编辑器你好! 这是你第一次...

2018-11-02 14:05:23 167

原创 **@RequestMapping 和 @GetMapping @PostMapping 区别**

@RequestMapping 和 @GetMapping @PostMapping 区别 @GetMapping是一个组合注解相当与是@RequestMapping(method=Request.GET)的缩写; @PostMapping是一个组合注解相当与是@RequestMapping(method=Request.POST)的缩写;...

2018-09-18 15:30:31 425

原创 java单例模式

1、定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。 2、单例模式有三个要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。   单例模式是结构最简单的设计模式一,在它的核心结构中只包含一个被称为单例类的特殊类。   public class Sin...

2018-09-04 14:56:16 137

Java 动态可监控线程池

动态调整参数:无需重启服务,修改核心线程数、最大线程数、队列容量 实时监控:查看活跃线程数、队列积压任务数、历史完成任务数 增强拒绝策略:任务拒绝时自动降级或暂存到外部队列等待重试 兼容性:保持 ThreadPoolExecutor 原生功能,无缝替换现有代码

2025-05-21

java语言 jdk17 springboot3.4.4,mysql8.0版本,shardingsphere分库分表开发案例

java语言 jdk17 springboot3.4.4shardingsphere分库分表开发案例,

2025-04-23

大数据模拟练习demo

大数据模拟练习demo,直接下载文件,执行mysql脚本就能使用,

2025-04-21

reactor.core.publisher.Flux; 数据流式处理

reactor.core.publisher.Flux; 数据流式处理

2025-04-16

freemarker处理word

使用freemarker根据word模板生成word文件,jdk17 springboot3.2.5

2025-04-15

java 设计模式之策略模式和工厂模式

java 设计模式之策略模式和工厂模式

2025-04-15

财务移动平均计算最新结存算法

根据单据日期单据类型 单据类型,id升序 先取出同一天的单据, 然后根据排序字段判断 判断排序字段是几,如果是1 取同日期下最新的是1 的单据作为结存如果没有1用之前的单据日期最后一条最为最新结存,如果都找不到,直接用期初作为最新结存数据,期初还没有用空, 如果是2 取同日期是2的最为最新结存,如果没有1用期初作为最新结存,如果没有1用用之前单据日期最后一条最为最新结存,如果都找不到,直接用期初作为最新结存数据,期初还没有用空, 如果是3 取同日期是3的作为最新的结存,如果没有找到2取2最新的数据作为最新结存,,如果2没有取1最为最新结存,如果没有1用用之前单据日期最后一条最为最新结存,如果都找不到,直接用期初作为最新结存数据,期初还没有用空, 如果是4 取同日期是4的最为最新结存,如果没有找3取3最新的数据最为最新结存,如果3没有取2作为最新结存,如果没有2取1作为最新结存,如果没有1用用之前单据日期最后一条最为最新结存,如果都找不到,直接用期初作为最新结存数据,期初还没有用空, 如果是5取同日期是5的作为最新结存,如果没有5取4最新的数据作为最新结存,如果4没有取3作为最新结存,如

2025-03-26

redis配置文件中英文互译

redis配置文件中英文互译

2025-03-24

空空如也

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

TA关注的人

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