- 博客(34)
- 收藏
- 关注
原创 Redis缓存机制
Redis缓存实战方案解析:通过介绍Redis缓存特性、添加步骤及常见问题解决方案,帮助开发者构建高效缓存系统。文章详细讲解了如何配置Redis连接、实现缓存更新策略(查询写入+更新删除),并针对缓存穿透(空值缓存/布隆过滤器)、雪崩(随机过期/集群部署)、击穿(互斥锁/逻辑过期)三大问题提供具体应对措施。最后推荐封装Redis工具类统一管理操作,强调合理运用缓存策略对提升系统性能的重要性,需根据业务场景持续优化缓存方案。
2025-07-08 12:05:44
759
原创 MySql多表查询完全指南:从基础概念到实战应用
多表查询是SQL核心技术,通过JOIN操作实现多个表的关联查询。主要内容包括:1.多表查询概念及重要性,解决数据分散问题;2.核心连接类型(INNER/LEFT/RIGHT/FULL JOIN)及适用场景;3.ON与WHERE的区别,UNION与UNIONALL的差异;4.聚合与分组查询、子查询与窗口函数等高级用法;5.实战示例涵盖一对一、一对多、多对多关联及自连接等场景;6.性能优化策略与最佳实践,如避免笛卡尔积、合理使用索引等。掌握多表查询能有效处理复杂业务数据需求。
2025-06-15 11:37:15
673
原创 Mysql-定时删除数据库中的验证码
在MySQL中,定时删除数据是一种常见的数据库维护操作,用于清理过期或不再需要的数据,以优化数据库性能和管理空间。MySQL从5.1.6版本开始引入了事件调度器(Event Scheduler),允许用户创建事件来定期执行特定任务,如删除特定时间之前的数据。
2025-06-07 21:55:22
1121
原创 复杂业务场景下 JSON 规范设计:Map<String,Object>快速开发 与 ResponseEntity精细化控制HTTP 的本质区别与应用场景解析
直接使用Map/对象转换 - 简单灵活,适用于临时接口;定义统一响应实体类 - 推荐方式,提供规范化和类型安全;使用Spring的ResponseEntity - 提供完整的HTTP响应控制。 重点对比了Map与ResponseEntity的区别:后者可控制状态码和响应头,更适合复杂场景。同时说明在Spring中返回ResponseEntity时无需@ResponseBody注解,因其已内置序列化功能。建议根据场景选择合适方案:简单接口用Map,规范化接口用统一实体类,需精细控制HTTP响应时用Resp
2025-06-01 20:23:36
1046
原创 PageHelper分页工具
通过 PageHelper,开发者可大幅简化分页逻辑,将更多精力聚焦于业务实现,是 MyBatis 项目中最常用的插件之一。上一页页码(不存在时为 0)下一页页码(不存在时为 0)当前页码(从 1 开始)
2025-05-26 10:13:16
1060
原创 JavaScript基础汇总
JavaScript是一种动态、弱类型的脚本语言,主要用于为网页添加交互功能。其核心内容包括基本语法、函数、作用域、内存管理、ES6+新特性、引入方式、基础语法、常用对象、BOM(浏览器对象模型)、DOM(文档对象模型)和事件监听。基本语法涉及变量声明(var、let、const)、数据类型(原始类型和引用类型)、运算符和流程控制。函数部分包括函数声明与表达式、箭头函数和参数传递。作用域分为全局与局部作用域,闭包是函数内部访问外层变量的机制。内存管理涉及垃圾回收和内存泄漏。ES6+新特性包括let、cons
2025-05-19 09:25:46
962
原创 异常处理器深度解析与实践指南
**全局异常处理器的作用**:自动捕获未被处理的异常,包括运行时异常和自定义异常。但有些情况下,开发者需要显式地抛出异常,以便异常处理器能够捕获并进行相应的处理。**何时需要手动抛出异常**:比如在业务逻辑中,当遇到无效参数、权限不足、数据不存在等情况时,主动抛出对应的自定义异常,让异常处理器统一处理,而不是在每个地方都处理错误逻辑。 **不抛出异常的情况**:如果某个异常已经被try-catch块捕获并处理,那么异常处理器就不会再处理它。但如果开发者希望异常被全局处理器处理,就需要在catch块
2025-05-08 15:38:17
1013
原创 Git 全面解析:从核心概念到生态应用
Git 不仅是一个版本控制工具,更是现代软件开发协作的基础设施。从单机小项目到跨国开源社区,其分布式架构、高效分支模型和生态扩展性,支撑了全球数以亿计的开发者协同工作。掌握 Git 的核心原理(如对象模型、引用机制)与最佳实践(如分支策略、代码审查流程),能显著提升团队开发效率,降低协作成本。未来,随着 DevOps 和云原生的发展,Git 仍将在软件工程中扮演核心角色。
2025-04-27 21:22:47
887
原创 Spring 事务管理核心机制与传播行为应用
Spring 事务管理基于 AOP(面向切面编程)实现,通过 声明式事务(注解或 XML 配置)统一管理数据库操作,确保数据一致性。核心目标:保证多个数据库操作的原子性(要么全部成功,要么全部回滚)。核心优势:解耦业务代码与事务管理:通过注解配置,无需侵入业务逻辑。支持多种事务管理器:如 JDBC、Hibernate、JPA 等。灵活的事务传播行为:控制事务的边界和嵌套逻辑。需求:用户 A 向用户 B 转账,需保证扣款和存款操作同时成功或失败。(2) 数据层(DAO)三、Spring 事务
2025-04-20 17:13:03
881
原创 Spring AOP 全解析:从核心概念到实战案例
AOP(面向切面编程) 是一种编程范式,用于将系统中横切关注点(如日志、事务、权限校验)与核心业务逻辑解耦。通过代理模式实现,在不修改原有代码的基础上,动态增强功能。核心思想:将通用功能(如日志)从业务代码中抽离,以“切面”形式统一管理,通过动态代理织入到目标方法中。
2025-04-12 20:21:14
958
原创 Spring IOC:容器管理与依赖注入秘籍
在 Spring 里,@Component注解可把一个类标记成 Spring Bean,让 Spring 容器能够对其进行管理。此外,Spring 还提供了功能和@Component一样的三个注解,分别是@Service和。:一般用在数据访问层(DAO 层),代表这是一个数据仓库类。@Service:常用于业务逻辑层(Service 层),代表这是一个业务服务类。:一般用于表现层(Controller 层),代表这是一个控制器类。// 数据访问层// 业务逻辑层@Service。
2025-04-01 19:38:54
1218
原创 算法-深度优先搜索DFS
开始for循环遍历每一个地图节点,只有#是符合DFS的节点(即有符合题意的相邻节点),因此每个#都要用dfs搜索一遍。从1开始遍历不断dfs深搜,一定要从头到尾看代码把所有结果捋一遍,dfs函数返回到哪里,返回之后执行什么逻辑?因为要遍历整个地图(图),并且符合题意的节点都有要搜索的相邻节点,搜索相邻节点就需要用DFS。开始for循环遍历每一个小朋友,每一个小朋友都符合题意(即有相邻节点),因此每个小朋友都要用dfs搜索一遍。要保证前一位的数字大于后一位的,则后一位要从上一位的数字+1开始遍历。
2025-03-20 20:34:00
1247
原创 算法-二分查找
二分查找算法二分查找算法二分查找的前提是数据集合必须是(升序或降序)。它每次将查找范围缩小一半,通过比较目标值与中间元素的值,决定下一步在左半部分还是右半部分继续查找,直到找到目标值或者查找范围为空。
2025-03-14 17:37:57
1109
原创 Java 内部类
匿名内部类是一种没有名字的内部类,它可以在使用的地方直接创建并实例化,通常用于实现接口或继承抽象类。由于没有类名,所以它只能使用一次。静态内部类是定义在另一个类(外部类)内部,并且使用static关键字修饰的类。// 静态内部类// 静态内部类的成员System.out.println("这是静态内部类的方法");成员内部类是定义在外部类内部的普通类,它与外部类的成员变量和成员方法处于同一层级。// 外部类// 外部类的成员变量// 成员内部类// 内部类的成员变量// 内部类的方法。
2025-03-10 10:06:37
742
原创 Java Web-Filter
FilterFilter在 Java Web 开发中,Filter(过滤器)是 Servlet 规范中的一个重要组件,它可以对客户端与服务器之间的请求和响应进行预处理和后处理。
2025-03-02 12:11:50
1757
原创 Java Web-JSP
JSP是Java Web开发的重要历史技术,适合快速开发小型应用或维护遗留项目。现代开发中更推荐使用模板引擎或前后端分离架构,但理解JSP有助于深入掌握Servlet和MVC原理。学习时需注意结合EL、JSTL避免脚本代码,保持代码整洁。
2025-02-17 09:32:32
914
原创 Java Web-MyBatis
MyBatis简介MyBatis简介MyBatis 是一个优秀的 Java 持久层框架,它可以帮助开发者将 Java 对象映射到数据库表,并执行 SQL 语句来操作数据库。以下从基础概念、核心组件、使用步骤及代码示例等方面详细介绍:一、基础概念MyBatis 允许开发者使用 XML 或注解来配置和映射原生信息,将 Java 接口和 POJO(Plain Old Java Objects,普通 Java 对象)映射成数据库中的记录。
2025-02-06 14:33:50
1069
原创 Java Web-Cookie与Session
Session 是服务器端的会话机制,服务器会为每个客户端(浏览器)创建一个唯一的 Session 对象,用于存储该客户端在整个会话期间的相关数据。客户端通过一个唯一的 Session ID 来与服务器的 Session 对象进行关联。
2025-01-26 18:32:15
905
原创 Java Web-Request与Response
Request(请求对象)在 Java Web 开发中,Request和Response是两个非常重要的对象,用于在客户端和服务器之间进行请求和响应的处理,以下是详细介绍:Request(请求对象)在 Java Web 开发中,通常涉及到的request对象主要是指。
2025-01-25 14:24:03
908
原创 Java Web-Tomcat Servlet
Web 服务器是一种软件程序,它主要用于在网络上接收和处理客户端(如浏览器)发送的 HTTP 请求,并返回相应的网页内容或数据。
2025-01-24 13:59:13
2328
原创 Java Web-JDBC详解
JDBC(Java Database Connectivity)是 Java 程序连接数据库的标准 API(Application Programming Interface)。它为 Java 开发人员提供了一种统一的方式,使 Java 程序能够与各种不同的数据库管理系统(DBMS)进行交互。通过 JDBC,开发人员可以执行 SQL 语句,包括查询、更新、插入和删除操作,以实现对数据库的操作。
2025-01-18 12:49:19
829
原创 Java web-MySql数据库与SQL语句
数据库基础概念MySQL与SQLSELECTINSERTUPDATEDELETE总之,,它实现了 SQL 标准并提供了一些额外的功能。SQL分类1. DDL(Data Definition Language - 数据定义语言)用于定义和管理数据库对象,如数据库、表、索引等。
2025-01-16 17:58:55
996
原创 数据结构-链表
由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。插入节点,以2插入1和3举例。是先新节点.next=temp.next,然后再temp.next=新节点,即2先指向3,再让1指向2。链表作为一种基础且灵活的数据结构,在算法设计和系统实现中扮演着重要角色。,结点可以在运行时动态生成。,数据元素的逻辑顺序是通过链表中的引用链接次序实现的.
2025-01-05 10:24:47
748
原创 JAVA-IO流(九周目)
序列化流()用于将Java对象写入到输出流中,实现对象的持久化存储或网络传输。反序列化流()用于从输入流中读取Java对象,实现对象的重构。使用序列化流和反序列化流时,需要确保对象实现了接口,并且注意类的兼容性问题。序列化流和反序列化流在分布式计算、对象持久化、网络通信等领域有着广泛的应用。序列化多个对象,采用集合的方式,将对象全部放进集合。这样反序列化的时候直接读集合就好了,不需要知道对象个数了。打印流。
2024-12-07 21:55:46
962
原创 JAVA异常详解(八周目)
异常抛出与捕获是Java异常处理机制的两个核心组成部分。通过抛出异常,我们可以将错误信息从问题发生点传播到能够处理它的地方。而通过捕获异常,我们可以在适当的位置处理这些错误,确保程序的稳定性和可靠性。自定义异常在捕获与抛出的综合运用的例子中我们发现,没有一个合适的异常能够准确描述姓名异常与年龄异常。自定义异常便可以解决这个问题在Java编程中,自定义异常是通过继承Exception类(或其子类)来实现的。
2024-11-30 20:37:11
863
原创 CSS基础汇总(七周目)
CSS重要知识点CSS(Cascading Style Sheets,层叠样式表)是用于控制网页样式的一种技术,它允许开发者设置HTML页面中的文本内容、图片外形以及版面布局等外观显示样式。以下是对CSS知识点的总结:一、CSS基础 定义与功能: CSS全称为层叠样式表,主要用于设置HTML页面中的文本内容(如字体、大小、对齐方式等)、图片的外形(如宽高、边框样式、边距等)以及版面的布局等外观显示样式。 CSS以HTML为基础,提供了丰富的功能,如字体、颜色、背景的控制以及整体排版等
2024-11-24 17:06:11
838
原创 HTML基础汇总(六周目)
HTML知识点总结HTML知识点总结HTML的重要知识点涵盖了多个方面,以下是对这些知识点的归纳和总结:一、HTML基础<html><head><body><head><title><meta><link><style><script><body>这些属性可以改变标签的行为、外观或提供更多的功能细节。:这些属性可以应用于任何HTML标签元素。:这些属性特定于某些HTML标签,并为其提供额外的功能或信息。<h1><h6><p><b><strong><i><em><br><hr><pre>三、图像。
2024-11-16 21:08:04
925
原创 JAVA集合详解(五周目)
HashSet是一个没有重复元素且无序的集合。它允许使用null元素,但最多只能存储一个null,因为其内部不允许有重复元素。HashSet是通过HashMap实现的,它内部含有一个HashMap类型的成员变量,HashSet的操作函数实际上都是通过这个HashMap实现的。
2024-11-10 10:32:35
1953
原创 JAVA字符串详解(四周目)
描述:Java的集合框架提供了一套设计良好的支持对一组对象进行操作的接口和类。主要接口和类Collection接口:是集合的顶级接口,提供了集合的基本操作。List接口:继承自Collection,是有序的集合,允许重复元素。Set接口:继承自Collection,不包含重复元素。Map接口:不是继承自Collection,而是提供了键值对的存储方式。
2024-11-02 21:51:23
1034
原创 二周目JAVA学习总结
方法签名:方法签名由方法名和参数类型决定,用于Java平台执行方法时确定指向哪个方法。方法签名与方法的返回值无关。返回值方法可以有一个返回值,也可以没有。如果方法没有返回值,则使用void关键字标记。方法的返回值类型必须与定义时声明的类型匹配。return关键字用于返回方法的返回值,并结束方法的执行。如果方法没有返回值(即返回类型为void),则return语句可以省略,但通常会使用return来结束方法的执行。参数列表:方法可以接受零个或多个参数,这些参数在方法调用时提供,并在方法体内使用。
2024-10-20 15:35:18
810
原创 一周目JAVA学习总结
总体来说,二者较多部分内容相似,但与c语言相比java在格式上更复杂,较难记忆,相同输出内容所要书写的代码量更大。这样写终端里啥也没有,在咨询学长学姐后知道了问题所在:a没有重新初始化,判断完一个数是不是素数后,a不再等于零了,在最后用完a后,要将a还原为0。因if语句三种格式,switch语句,for循环,while循环的格式的过于常用,已熟练掌 握,这里不再一一赘述。ok,那么就完成了这道for循环嵌套的应用,这个套路很常见,c与java都可使用。if用于对范围的判断;
2024-10-13 17:53:05
750
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人