自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java POI导出Excel:30个复杂场景实战大揭秘

Java POI 导出 Excel 实战指南 本文深入探讨了 Java 开发中使用 POI 库导出 Excel 的 30 个实战场景,涵盖了从基础操作到高级应用的各个方面。主要内容包括: 基础功能实现 数据库数据导出 单元格样式设置 合并单元格 列宽行高调整 数据格式化 复杂数据处理 多 Sheet 导出 动态表头生成 树形结构导出 分组数据展示 大数据量分页导出 特殊格式处理 图片插入 超链接添加 公式计算 批注说明 富文本显示 系统集成方案 数据库直接导出 SpringBoot 集成 MyBatis 整

2025-07-25 17:11:21 978

原创 解锁阿里云OSS V4预签名:Java实现文件加密上传下载

本文介绍了基于阿里云OSS V4预签名实现安全文件上传下载的完整解决方案。首先概述了阿里云OSS的特点和V4预签名的安全机制,详细说明了其相比旧版本在安全性、鉴权信息丰富度和API简化方面的优势。文章提供了从开通OSS服务、获取访问凭证到项目依赖配置的完整准备工作流程,并给出Java实现文件上传下载加密的具体代码示例,包括生成V4预签名URL和前后端交互流程。最后针对常见的签名过期和权限不足问题,提出了重新生成签名和合理配置RAM权限等解决方案。该方案充分利用阿里云OSS的安全特性,为开发者提供了一种便捷高

2025-07-25 08:12:46 707

原创 Java POI导入Excel:30个复杂场景实战案例大揭秘

文章摘要: Apache POI是一个强大的Java库,用于操作Microsoft Office文档。本文详细介绍了POI的基础知识、环境搭建方法,以及各类复杂场景的应用案例。内容包括Excel文档的读取与写入(如处理合并单元格、超大文件、动态下拉列表等),Word文档的创建与修改(如复杂格式设置、模板填充、图表插入等),以及POI与Web项目、数据库的集成应用。文章还提供了性能优化技巧,帮助开发者高效处理办公文档自动化需求。通过丰富的代码示例,展示了POI在实际业务中的多样化应用场景。

2025-07-19 13:19:41 658

原创 挥别Feign,拥抱Spring 6.1 RestClient:高可用HTTP客户端构建之路

《基于Spring6.1 RestClient构建高可用声明式HTTP客户端》 摘要: 随着微服务架构的普及,远程服务通信成为系统设计的关键环节。本文探讨了从传统Feign客户端向Spring6.1 RestClient迁移的技术方案。RestClient作为Spring6.1引入的新型HTTP客户端,具有API简洁、扩展性强、性能优异等特点。文章详细对比了Feign与RestClient的特性差异,提供了从项目创建、依赖配置到接口定义的全流程迁移指南,重点介绍了负载均衡集成、连接池优化和错误重试机制等高级

2025-07-11 14:38:13 999

原创 Java对接微信支付全过程详解

微信支付接入全流程指南 本文详细介绍了微信支付接入的完整流程,包含以下核心环节: 前期准备:注册公众号/小程序并完成微信认证,申请支付商户账号,获取APPID、API密钥等关键配置信息。 环境搭建:基于SpringBoot框架引入微信支付SDK,配置支付参数并实现参数注入。 接口对接:实现统一下单、订单查询和退款等核心接口,提供完整代码示例。 安全机制:详解签名生成与验证流程,确保交易安全。 回调处理:解析支付结果通知并实现业务处理逻辑。 常见问题:针对签名错误、参数校验等典型问题提供解决方案。 整个流程涵

2025-07-05 13:07:54 885

原创 码农必备!深入掌握BigDecimal的全场景应用

Java中的BigDecimal类解决了浮点数精度问题,尤其适用于金融计算、科学研究和商业系统等对精度要求高的场景。摘要要点如下: 精度问题根源:基本浮点类型float/double采用IEEE 754标准,导致十进制小数在二进制中无法精确表示。 创建方式对比: 推荐使用String构造器(new BigDecimal("0.1"))或BigDecimal.valueOf()方法 避免直接使用double构造器,防止初始精度损失 核心运算方法: 精确算术运算:add/subtract/m

2025-06-13 11:36:07 833

原创 Java开发者的XXL-Job分布式定时任务实战秘籍

本文详细介绍如何引入并使用XXL-Job,适合新手阅读

2025-06-10 18:40:56 953

原创 解锁Aviator:Java动态表达式求值的轻量级神器

Aviator表达式引擎开发指南 本文详细介绍了Aviator表达式引擎的使用方法。首先说明如何通过Maven引入Aviator依赖,然后讲解基本表达式求值、变量使用和编译执行机制。Aviator支持丰富的运算符、数据类型和内置函数,开发者还可以通过继承AbstractFunction类实现自定义函数。 文章重点介绍了Aviator的两种典型应用场景:在规则引擎中动态判断业务规则,以及在电商系统中进行商品价格等动态计算。通过Aviator可以将业务规则从代码中分离,提高系统的灵活性和可维护性,同时获得良好的

2025-06-10 18:25:12 1452

原创 一文吃透Java分层开发:PO、BO、DTO、VO、POJO大揭秘

PO 即持久化对象,其属性与数据库表字段严格一一对应,是数据库表在 Java 代码中的直观映射。在实际项目里,当我们使用 MyBatis 这样的 ORM 框架时,PO 的作用尤为显著。@Id// 省略Getter和Setter方法在上述代码中,@Table注解指明了该 PO 对应的数据库表名,@Id注解标识了主键字段。通过这种映射关系,MyBatis 可以方便地将UserPO对象与数据库表进行交互,执行插入、查询、更新和删除等操作。

2025-06-07 21:03:33 693

原创 从POI到EasyExcel,Java Excel处理的进化之路

【摘要】 本文详细介绍了阿里巴巴开源的EasyExcel工具在Java中处理Excel数据的优势与实践方法。针对传统POI技术(如HSSF/XSSF)在大数据量场景下的内存溢出和效率低下问题,EasyExcel通过流式读写与逐行解析机制显著降低了内存消耗。文章对比了POI各版本的优缺点,重点阐述EasyExcel的核心特性:简化API、低内存占用、高效处理百万级数据及复杂格式支持。实战部分演示了数据导入(监听器模式映射Java对象)与导出(注解配置样式、合并单元格等高级功能),并提供了性能优化方案(批量处理

2025-06-01 13:07:33 1154

原创 JVM 基础 - JVM 内存结构

本文详细讲解了JVM内存结构中的运行时数据区,包括程序计数器、虚拟机栈、本地方法栈、堆内存和方法区五大核心部分。程序计数器作为线程私有区域,负责存储指令地址;虚拟机栈用于方法调用,包含栈帧结构;本地方法栈处理本地方法调用;堆内存分为新生代和老年代,是对象实例的主要存储区;方法区存储类信息、常量等数据,JDK8后由元空间替代永久代。文章还分析了各区域的内存分配、垃圾回收机制及优化策略,并通过参数设置和异常情况说明内存管理的重要性。理解JVM内存结构对性能调优和故障排查具有关键作用。

2025-05-31 10:37:04 1209

原创 解锁Java同步锁:性能优化从入门到精通

📃。

2025-05-27 11:34:36 681

原创 Java类初始化顺序(超详细)

本文详细解析了Java类的初始化顺序,涵盖无继承和有继承关系两种情况。在无继承情况下,类初始化遵循静态变量→静态块→实例变量→非静态块→构造函数的顺序;而在继承关系中,初始化顺序变为父类静态→子类静态→父类实例→父类构造→子类实例→子类构造。文章通过代码示例和流程图展示了这一过程,强调了理解初始化顺序对编写正确高效Java代码的重要性,特别是在处理复杂类结构和继承关系时能避免潜在错误。

2025-05-27 10:45:22 724

原创 @Transactional注解失效全解析与破局之道

摘要: Spring的@Transactional注解通过声明式事务管理简化了数据库操作的原子性控制,确保数据一致性(如转账场景)。其失效常见原因包括:非public方法、同类内部调用、异常捕获不当、多线程环境、rollbackFor配置错误及数据库引擎不支持事务。解决方案包括:确保方法为public、避免内部直接调用、正确捕获/抛出异常、多线程改用编程式事务、检查rollbackFor设置及切换支持事务的数据库引擎(如MySQL的InnoDB)。该注解适用于服务层复杂业务逻辑,需结合代理机制和事务特性合理

2025-05-24 21:13:23 704

原创 Mybatis的实现原理(超详细)

MyBatis是一款优秀的持久层框架,通过简化JDBC操作、支持动态SQL和灵活的映射机制,显著提升了Java开发中的数据库操作效率。其核心组件包括SqlSessionFactory、SqlSession、Executor、StatementHandler等,协同工作以执行SQL语句并处理结果。MyBatis的工作流程涉及配置文件的加载与解析、SqlSession的创建、Mapper代理对象的生成以及CRUD操作的执行。此外,MyBatis提供了动态SQL、缓存机制和参数映射等高级功能,帮助开发者优化性能并

2025-05-19 16:58:47 1315

原创 MySQL复合查询:从入门到多表关联的进阶秘籍

本文将全面深入地解析 MySQL 复合查询,从基础的单表查询回顾开始,逐步深入到多表关联查询、子查询、联合查询等高级技巧,同时还会介绍相关的性能优化策略和实际应用案例。无论你是 MySQL 的初学者,还是已经有一定经验的开发者,相信本文都能为你带来新的启发和收获,帮助你更好地掌握 MySQL 复合查询这一强大的工具,提升在数据库开发和管理方面的能力。

2025-05-17 09:34:19 846

原创 50个JAVA常见代码大全(详细注解):学完这篇从Java小白到架构师

本文提供了50个Java编程中的关键代码示例,涵盖了从基础语法到高级架构的多个方面。内容包括基础语法(如HelloWorld、数据类型、条件判断、循环、数组、方法等)、面向对象编程(如类与对象、继承、接口、抽象类、多态、封装等)、高级特性(如静态变量、内部类、匿名类、泛型、集合框架等)、异常处理与高级编程(如文件I/O、多线程、同步、Lambda表达式、反射机制等)、架构相关(如设计模式、JDBC、Spring框架、MyBatis、微服务架构等)以及性能优化与安全编码(如JVM调优、SQL注入防范、XSS攻

2025-05-14 20:57:25 2261

原创 Java 与 Elasticsearch 集成详解及使用指南

本文详细介绍了Java与Elasticsearch的集成方法及使用指南。首先,文章概述了Elasticsearch作为分布式搜索引擎的优势及其与Java集成的必要性。接着,详细说明了环境准备步骤,包括Elasticsearch的安装、Java开发环境的配置以及Elasticsearch Java客户端依赖的添加。随后,文章分步骤讲解了Java与Elasticsearch的集成过程,包括创建Elasticsearch客户端、索引操作和文档操作。此外,还介绍了高级查询与聚合分析的方法,如复合查询和分组聚合。最后

2025-05-14 10:55:40 746

原创 Windows系统下无人机RTMP传输(超详细)

Windows系统下无人机RTMP传输(超详细)

2025-05-11 11:11:55 1276

原创 正则表达式(看完这篇包你会用的)

group是针对()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西,group(2)指的第二个括号里的东西。所谓向前查找,就是规定了一个匹配的内容,然后以这个内容为尾部向前面查找需要匹配的内容。由于 + 是贪婪型的,因此 .+ 会匹配更可能多的内容,所以会把整个 abcabcabc 文本都匹配,而不是只匹配前面的 abc 文本。条件为定义的首尾是否匹配,如果匹配,则继续执行后面的匹配。前后查找规定了匹配的内容首尾应该匹配的内容,但是又不包含首尾匹配的内容。

2025-05-07 17:32:02 868

原创 SQL语言 - SQL语法基础

本文包含了所有SQL语言的基础语法,并用例子的方式向你展示。📃箴言:拥有耐心才是生活的关键。

2025-05-06 14:39:49 1054

原创 从青铜到王者:Java二维数组全攻略

在 Java 中,二维数组本质上是数组的数组 ,即每个元素都是一个一维数组。我们可以将二维数组形象地类比为生活中的表格,表格有行和列,二维数组也有类似的结构,通过行索引和列索引可以精准定位到其中的每一个元素。就像一个棋盘,棋盘上的每个格子都可以通过行号和列号来确定其位置,二维数组中的元素也是如此,通过两个索引值来确定其在数组中的位置。例如,假设有一个表示班级学生成绩的二维数组,第一维可以表示学生的序号,第二维可以表示不同课程的成绩,这样就能方便地存储和管理每个学生的多门课程成绩。

2025-05-05 09:21:19 887

原创 解锁Java异常处理神器:try-catch深度剖析

printStackTrace()方法则会将异常的堆栈跟踪信息完整地输出,这对于定位异常发生的位置和调用链极为关键,就像给开发者提供了一张异常发生路径的地图,沿着这张地图,开发者可以一步步追溯到异常的源头,从而更高效地解决问题。另外,如果finally块中抛出了异常,那么这个异常会覆盖try块或catch块中抛出的异常,这在编写代码时需要特别留意,尽量避免在finally块中抛出不必要的异常,以确保程序的正常流程和异常处理的准确性。在这个结构中,try块包含了可能会抛出异常的代码。

2025-05-03 18:40:33 963

原创 C++从进阶到实战:解锁高级技巧与应用

C++ 作为一门强大而灵活的编程语言,在高级进阶实战应用中展现出了无可替代的优势,在游戏开发、工业控制系统、高性能计算等领域都发挥着关键作用。同时,掌握智能指针的正确使用、巧用 STL 容器与算法、理解和运用 Lambda 表达式以及掌握 Move 语义与右值引用等必备技巧,能够极大地提升 C++ 编程的效率和代码质量。学习 C++ 是一个不断探索和积累的过程,希望读者能够将这些知识应用到实际项目中,不断实践和总结经验。

2025-04-29 21:03:21 710

原创 Java反射机制(超详细)

Java通过反射访问构造方法通过 Java 的反射机制,程序员可以更深入地控制程序的运行过程。例如,在程序运行时由用户输入一个类名,然后动态获取该类拥有的构造、属性和方法,甚至调用任意类的任意方法。本章首先介绍 Java 中 Class 类与 Java 反射的基本用法,然后介绍具体的反射应用。为了便于读者理解,在讲解过程中还结合了大量案例。

2025-04-29 20:40:24 1267

原创 【STM32外设系列】GPS定位模块(ATGM336H)

STM32 是意法半导体公司推出的基于 ARM Cortex-M 内核的 32 位微控制器系列,凭借其出色的性能和丰富的功能,在嵌入式领域应用广泛。

2025-04-27 15:40:00 1492 1

原创 EMC问题排查指南:嵌入式与硬件开发的通关秘籍

EMC 问题排查是一项复杂且细致的工作,涵盖了从准备工作到深入排查,再到干扰源定位的多个关键环节。在排查前,扎实的电磁学知识储备是基础,就像盖房子需要坚实的地基一样,只有理解了电场、磁场和电磁波的基本原理,才能更好地理解 EMC 问题的本质。同时,准备好频谱分析仪、示波器、近场探头等专业工具,它们是我们排查问题的有力武器,能够帮助我们捕捉到电磁信号的细微变化,发现潜在的问题。了解不同行业和地区的 EMC 测试标准也至关重要,这些标准是我们判断问题的依据,确保我们的排查工作符合规范要求。

2025-04-27 15:28:32 1114

原创 STM32中断:从入门到实战,带你玩转嵌入式核心技能

STM32 中断作为嵌入式系统中的关键技术,为我们打开了一扇通往高效、实时控制的大门。通过对中断的深入学习和实践,我们了解到它不仅能够显著提升系统的响应速度,还能实现多任务的并行处理,极大地提高了系统的性能和可靠性。在实际应用中,无论是智能家居系统中对各种传感器数据的实时采集与处理,还是工业自动化领域中对电机控制、设备状态监测的精准把控,STM32 中断都发挥着不可或缺的作用。它就像一位默默奉献的幕后英雄,在关键时刻挺身而出,确保系统的稳定运行和高效工作。

2025-04-27 15:22:31 940

原创 ThreadX RTOS 代码详解

通过对 ThreadX RTOS 任务管理、同步与通信机制以及中断处理等核心代码的详细分析,我们深入了解了其运行原理和实现方式。这些代码是 ThreadX 高效、稳定运行的基础,掌握它们对于基于 ThreadX 进行嵌入式系统开发至关重要。在实际开发中,开发者可以根据具体需求,灵活运用 ThreadX 的各项功能,优化系统性能,实现复杂的嵌入式应用。

2025-04-27 10:47:47 1305

原创 SpringBoot 条件注解全解析:核心作用与使用场景详解

除了使用内置条件注解,开发者还可以根据实际需求自定义条件注解。实现Condition接口,编写matches方法逻辑。自定义注解,并使用@Conditional元注解,将自定义的Condition实现类作为参数。在配置类或 Bean 上使用自定义注解。// 自定义Condition实现类@Override// 自定义判断逻辑// 自定义条件注解// 使用自定义条件注解// 相关配置。

2025-04-25 18:28:51 968

原创 Redisson看门狗机制:分布式锁的可靠守护者

Redisson 是一个基于 Redis 的 Java 驻内存数据网格(In-Memory Data Grid),它不仅提供了一系列的分布式的 Java 常用对象,还实现了许多分布式服务,如分布式锁、分布式集合、分布式队列等。它的宗旨是促进使用者对 Redis 的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。分布式锁:支持可重入锁、公平锁、读写锁、红锁等多种分布式锁机制。在电商系统中,防止超卖现象就可以使用 Redisson 的分布式锁,保证同一时间只有一个线程可以对商品库存进行操作;

2025-04-25 09:50:37 1384

原创 解锁 Web 开发:注解的神奇魔法

Web 开发中的注解功能强大且多样,从核心组件的定义,到依赖注入与 Bean 管理,再到请求映射和数据处理,它们贯穿了整个 Web 开发流程。熟练掌握这些注解,能够让我们的开发工作事半功倍,编写出更加高效、优雅的代码。希望大家在实际项目中多多运用这些注解,不断探索和发现它们更多的潜力。如果你在使用过程中有任何新的发现或遇到问题,欢迎在评论区留言交流!结语🔥如果此文对你有帮助的话,欢迎💗关注、👍、⭐、✍️评论,支持一下博主~

2025-04-24 20:36:55 599

原创 SpringBoot 核心启动与配置注解全解析

SpringBoot 核心启动与配置注解全解析

2025-04-24 19:58:46 1053

原创 Java中包装类和泛型

泛型类是指在类定义时声明类型参数的类,其语法结构为:class 类名<类型参数> {... }。类型参数通常用单个大写字母表示,如T、E、K、V等,这些字母并没有固定的含义,只是一种约定俗成的用法。例如,T通常表示一般的类型(Type),E表示集合中的元素类型(Element),K和V分别表示键值对中的键类型(Key)和值类型(Value)。下面我们通过一个简单的泛型类Pair来展示泛型类的定义与使用。在这个例子中,<T>表示类型参数,T可以看作是一个占位符,代表将来实际使用的类型。

2025-04-24 13:47:56 575

原创 从Java到Go:解锁Go语言高级用法与入职必备技巧

从Java到Go:解锁Go语言高级用法与入职必备技巧

2025-04-21 19:29:23 1096

原创 解锁MQ消息堆积困境,Java程序员的破局之道

mq消息堆积问题处理方案

2025-04-17 21:02:16 1114

原创 Go语言快速入门

Go语言快速入门

2025-04-17 11:21:11 1132 5

原创 告别SQL“龟速”:Java程序员的深度排查与优化指南

在实现分页功能时,LIMIT子句是常用的方法。然而,当数据量较大时,LIMIT分页会出现性能问题,特别是在偏移量较大的情况下。例如,SELECT * FROM users LIMIT 10000, 10,数据库需要先扫描前 10000 条记录,然后再返回后面的 10 条记录,这会消耗大量的时间和资源。为了优化分页查询,我们可以利用上一页的最大值作为查询参数。假设users表中有一个user_id字段,且该字段是唯一且自增的。

2025-04-13 12:00:00 949

原创 解锁Java线上问题排查秘籍,告别玄学找Bug!

线上问题排查是一场充满挑战的技术马拉松,它需要我们综合运用各种工具、掌握丰富的知识,同时具备敏锐的洞察力和耐心。通过对 CPU、内存、磁盘、网络等方面问题的排查,我们能够在系统出现异常时迅速定位问题根源,采取有效的解决方案,保障 Java 应用的稳定运行。然而,线上问题的复杂性和多样性远远超出我们的想象。新的技术架构、业务场景的不断涌现,都会带来全新的问题和挑战。这就要求我们 Java 程序员不能满足于现有的排查技能,而要保持学习的热情,不断更新自己的知识体系,跟上技术发展的步伐。

2025-04-12 18:13:30 1018

原创 解锁Java设计模式:从理论到实战的通关秘籍

设计模式,简单来说,是在软件开发过程中针对反复出现的问题所总结归纳出的通用解决方案。它并非是某种特定的代码实现,而是一种抽象的、可复用的设计思路。打个比方,设计模式就像是建筑领域中的蓝图,为我们构建软件系统提供了清晰的指导。以日常生活中的例子来说,工厂生产产品时,会按照特定的流程和标准进行,这就如同设计模式中的创建型模式,将对象的创建过程进行了规范和抽象。在软件系统中,当我们需要创建对象时,如果没有统一的模式,可能会导致代码的混乱和重复。

2025-04-12 11:52:06 1082

设计书.zip

设计书.zip

2024-04-30

22软工智能7班-(48学时)第1章测试题(word).zip

22软工智能7班-(48学时)第1章测试题(word).zip

2023-05-07

空空如也

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

TA关注的人

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