自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大家的关注点赞,就是我持续更新的动力。

种一棵树最好的时间是十年前,其次是现在。

  • 博客(66)
  • 收藏
  • 关注

原创 行为型模式:解释器模式

本文介绍了使用解释器模式实现四则运算的解决方案。针对传统方案扩展性差、结构混乱的问题,提出通过构建抽象语法树的方式解析表达式。详细讲解了解释器模式的原理,包括 Context 环境角色、抽象表达式、终结符表达式和非终结符表达式的分工协作。通过具体代码展示了如何实现变量解释器、运算符解释器及表达式计算器,最终构建可扩展的四则运算系统。该模式适用于需要解释简单语法的场景,如编译器、正则表达式等,能有效提升代码的清晰度和可维护性。

2025-12-26 21:49:54 134

原创 Git 修改 commit 信息

本文介绍了修改 Git 提交信息的两种方法。对于历史提交,需使用 git rebase -i HEAD~n 进入交互模式,将 pick 改为 edit 后通过 git commit --amend 修改信息,最后用 git rebase --continue 和 git push -f 完成操作。同时提供了修改提交时间的命令格式,还展示了在 IDEA 中直接编辑提交信息的界面操作。适用于需要修正 Git 提交记录的场景。

2025-12-25 21:52:41 240

原创 SpringBoot 集成 JPA

本文介绍了 JPA【Java Persistence API】的基本概念和使用方法。JPA 是 JavaEE 标准之一,通过面向对象的 JPQL 语言操作实体对象而非数据库表。文章演示了如何在 Spring Boot 项目中集成 JPA,包括添加依赖、配置数据库连接和 JPA 参数【如 ddl-auto 模式】。通过创建带有 @Entity 注解的 User 实体类,展示了 JPA 的实体映射功能。重点解析了 JpaRepository 接口的继承体系,说明其提供的 CRUD、分页排序等操作方法。

2025-12-25 21:44:38 882

原创 Spring 的 IOC 详解

IOC【控制反转】是 Spring 框架的核心思想,通过将对象创建和调用过程交给 Spring 容器管理,有效降低代码耦合度。其底层实现基于 XML 解析、工厂模式和反射机制。

2025-12-20 16:01:24 710

原创 行为型模式:备忘录模式

本文介绍了备忘录模式在游戏角色状态恢复中的应用。传统方案通过备份对象状态存在管理困难和暴露内部细节的问题。备忘录模式通过 Originator【游戏角色】、Memento【状态备忘录】 和 Caretaker【状态管理者】 三个角色,实现了在不破坏封装性的前提下保存和恢复对象状态。代码示例展示了游戏角色攻击力和防御力的保存与恢复过程,通过 Caretaker 管理多个状态快照,提高了状态管理的效率和灵活性。该模式适用于需要保存对象历史状态的场景,如游戏存档、事务回滚等。

2025-12-20 13:35:15 133

原创 行为型模式:中介者模式

本文介绍了中介者模式在智能家庭系统中的应用。传统方案中电器对象相互调用导致耦合度高、扩展性差,而中介者模式通过引入中介对象解耦各组件。文章详细说明了中介者模式的原理类图,包含抽象中介者 Mediator、抽象同事类 Colleague 及其具体实现。以智能家庭项目为例,展示了闹钟、咖啡机等设备通过中介者协同工作的代码实现,包括注册、消息传递等核心方法。该模式有效降低了系统复杂度,提高了可维护性和扩展性,适用于对象间交互复杂的场景。

2025-12-20 12:55:03 116

原创 行为型模式:观察者模式

观察者模式的介绍,以及相关的代码实现案例

2025-12-14 11:17:35 133

原创 SpringBoot 集成 FreeMarker

SpringBoot 集成 FreeMarker 模板框架指南:通过添加 freemarker 和 spring-boot-starter-freemarker 依赖,配置模板属性如缓存、编码、后缀等。创建 Controller 测试基础数据绑定和复杂对象处理,支持 MultiValueMap 等数据结构渲染。提供完整的 yaml 配置示例和基础用法演示,实现前后端数据交互。

2025-12-14 10:19:09 866

原创 行为型模式:迭代器模式

本文介绍了迭代器模式在展示学校院系结构中的应用。传统方案将学院作为学校的子类,系作为学院的子类,存在遍历不便的问题。迭代器模式通过提供统一的遍历接口,解决了不同集合元素的遍历问题。文章详细展示了代码实现,包括 College 接口及其实现类、Department 类以及对应的迭代器类,实现了对学校院系结构的统一遍历,避免了暴露内部结构。该设计模式有效解耦了客户端与具体聚合类的关系。

2025-12-08 09:30:00 331

原创 SpringBoot 配置文件

本文介绍了 SpringBoot 配置文件的使用方法,包括 properties 和 yml 两种格式。重点讲解了自定义属性的配置与读取方式,通过 @Value 注解实现属性注入,并解决中文乱码问题。同时演示了属性默认值的设置技巧,以及利用 ${random} 生成随机数的多种应用场景。此外,还展示了使用 @ConfigurationProperties 批量绑定配置属性的方法,为开发者提供了灵活多样的配置管理方案。

2025-12-08 08:30:00 1114

原创 Java 泛型

本文介绍了 Java 泛型的概念及其应用场景。泛型类似于生活中的标签,用于在类、接口或方法中表示未知的通用类型参数。通过集合框架中的 List、Map 等案例展示了泛型如何保证类型安全,避免运行时类型转换异常。文章还演示了泛型在比较器接口 Comparable/Comparator 中的使用,并通过 Circle 类的代码示例说明泛型在自定义类中的应用。泛型的主要优势包括:编译时类型检查、代码简洁性和健壮性提升。

2025-12-07 14:20:00 1186

原创 Java 一维数组内存分析

本文介绍了 Java 虚拟机的内存划分及一维数组的内存存储机制。JVM 内存分为虚拟机栈、堆内存、方法区、本地方法栈和程序计数器五个区域,各区域功能不同。重点分析了一维数组的内存存储方式,通过示例代码展示了数组在内存中的分配过程,解释了数组下标从 0 开始的原因,并比较了独立数组与共享数组的内存差异。当多个变量指向同一数组时,它们共享内存空间,修改其中一个会影响其他变量访问的数组内容。文章通过图示直观展示了这些内存分配情况。

2025-12-07 13:59:04 255

原创 Java 一维数组的使用

本文介绍了 Java 中一维数组的基本操作,主要包括数组的声明、初始化和遍历方法。在声明数组时,推荐使用“数据类型 [] 数组名”的格式。数组初始化分为静态初始化和动态初始化两种方式:静态初始化直接指定元素值,如 int[] arr = {1,2,3}; 动态初始化只指定长度,如 int[] arr = new int[5]。数组通过下标访问元素,下标从 0 开始。遍历数组通常使用 for 循环配合 length 属性。文章还提供了多个代码示例演示这些操作。

2025-12-07 12:04:37 975

原创 Java 数组概述

本文介绍了数组的概念及其应用场景。文章首先通过员工工资统计和商品管理两个需求分析,说明使用数组作为数据容器的必要性。接着详细阐述了数组的定义、组成要素【数组名、下标、元素、长度】和特点【连续存储空间、固定长度、快速访问等】。最后对数组进行了分类:按元素类型分为基本数据类型数组和引用数据类型数组;按维度分为一维数组和二维数组。文章配有示意图帮助理解数组结构和二维数组概念。

2025-12-02 20:31:12 668

原创 Git 提交信息

本文介绍了 Git 提交信息的标准化格式规范,包含 12 种常见提交类型及其适用场景。每种类型通过特定前缀标识,如 feat【新功能】、fix【bug 修复】、docs【文档修改】等,并附有简明示例说明。该规范有助于团队统一提交信息格式,提升版本管理可读性和可维护性。适用于需要规范化 Git 工作流程的开发项目。

2025-11-30 13:58:47 148

原创 SpringBoot 使用 WebFlux

本文介绍了如何在 SpringBoot 中使用 WebFlux 框架实现响应式编程。首先概述了 WebFlux 作为非阻塞 Web 框架的特点,然后详细演示了创建 WebFlux 项目的步骤。通过 RouterFunctions 实现函数式路由配置,替代传统注解方式。文章还展示了测试运行效果,并探讨了 Web 和 WebFlux 框架共存的解决方案,包括使用 SpringApplicationBuilder 启动独立上下文、配置不同包路径避免冲突等。响应式编程方式适合高并发场景,为开发者提供了新的技术选择。

2025-11-30 12:25:32 1107

原创 行为型模式:访问者模式

本文介绍了访问者模式在测评系统中的应用。传统方案存在扩展性差、违反 OCP 原则的问题。访问者模式通过将数据结构与数据操作分离,在不改变数据结构的前提下定义新操作,解决了这些问题。文章详细阐述了访问者模式的原理、角色职责,并通过实例展示了如何实现一个歌手测评系统:定义抽象访问者 Action 及其具体实现【Success、Fail、Wait】,创建人类抽象类 Human 及其子类【Man、Woman】,使用 ObjectStructure 管理对象结构,最终通过双分派机制实现不同类型观众对歌手的不同评价。

2025-11-29 20:51:10 278

原创 Redis 安装

本文介绍了 Redis 的安装步骤,包括版本选择、下载、解压、依赖安装和编译过程。首先推荐使用偶数版本的稳定版 Redis,并提供了官网下载地址。安装前需确保系统已安装 gcc 编译环境。解压后进入目录执行 make 命令进行编译,详细展示了编译过程中的输出信息。通过完整步骤指导用户完成 Redis 的安装部署。

2025-11-29 18:20:04 1168

原创 Redis 简介

Redis 是一个开源高性能键值数据库,支持字符串、散列、列表等数据类型,适用于缓存、队列等场景。它采用内存存储,读写性能优异,并支持持久化。Redis 功能丰富,支持键过期、发布订阅等特性,命令简单易用,提供多语言客户端。由 Salvatore Sanfilippo 于 2009 年开发并开源,现已被众多知名公司采用。Redis 代码简洁高效,社区活跃,稳定性高,成为 Memcached 的有力竞争者。

2025-11-29 17:42:46 937

原创 行为型模式:命令模式

本文介绍了命令模式在智能家居项目中的应用。通过命令模式可以将动作请求者【手机 App】与动作执行者【家电设备】解耦,实现统一控制。文章详细阐述了命令模式的原理、角色职责【Invoker、Command、Receiver 等】以及具体实现方案,包括命令控制器、命令接口、空命令、电灯命令接收器和具体命令类等核心代码实现。该模式支持撤销操作,使得智能家居系统更加灵活可扩展。

2025-11-22 20:34:00 356

原创 Git 忽略文件

介绍 Git 的 .gitignore 文件,该文件用于指定 Git 仓库中需要忽略的文件和文件夹,这些文件不会被跟踪或提交到远程仓库。

2025-11-21 11:16:26 424

原创 Git 历史起源与简单介绍

Git 是一款先进的分布式版本控制系统,由 Linus Torvalds 开发,用于高效管理代码版本和团队协作。文章介绍了 Git 的诞生背景、与集中式版本控制工具【如 SVN】的区别,以及 Git 的基本概念和工作流程。Git 通过保存完整历史版本而非文件差异,支持离线工作,提高了安全性和灵活性。工作区、暂存区和版本库是 Git 的核心组成部分,文件修改需经过暂存区再提交到分支。Git 的三种状态【已修改、已暂存、已提交】和典型工作流程【克隆、修改、提交、推送】使其成为开发者必备工具。

2025-11-21 10:32:59 659

原创 Git 错误集锦

本文总结了 Git 使用中的常见问题及解决方案。

2025-11-21 10:19:21 778

原创 Git 命令:stash 和 unstash

本文介绍了 Git 的 git stash 命令,用于临时保存未提交的修改而不产生脏提交。主要功能包括:暂存修改【git stash/git stash save】、恢复修改【git stash pop/apply】、查看暂存列表【git stash list】、删除暂存【git stash drop/clear】以及查看差异【git stash show】。特别适用于需要切换分支修复紧急 Bug 但不想提交半成品代码的场景,能有效保持工作目录整洁。

2025-11-21 09:48:49 940

原创 行为型模式:模板方法模式

本文介绍了使用模板方法模式解决豆浆制作问题的过程。通过定义抽象类 SoyaMilk 实现制作流程的固定步骤【选材、浸泡、打碎】,将添加配料步骤作为抽象方法由子类实现。采用钩子方法 customWantCondiment () 扩展功能,支持制作纯豆浆。该模式实现了算法骨架的复用,同时允许子类灵活定制特定步骤,体现了好莱坞原则的思想。代码示例展示了红豆豆浆、花生豆浆和纯豆浆的具体实现,验证了模板方法模式在流程固定但部分步骤可变场景下的适用性。

2025-11-20 20:49:05 161

原创 Git 命令:cherry-pick

本文详细介绍了 Git 的 cherry-pick 功能,用于将特定提交从一个分支转移到另一个分支。主要包含以下内容:1、基本用法:通过 commitHash 或分支名转移单个提交2、转移多个提交的方法,包括连续提交范围3、常用配置项:-e 编辑信息、-n 不提交、-x 添加来源信息等4、处理代码冲突的三种方式:--continue/--abort/--quit5、跨代码库转移提交的操作流程该功能适用于只需部分代码变更的场景,是 Git 分支管理的重要工具。

2025-11-20 20:25:50 598

原创 Git 冲突解决

本文演示了 Git 分支冲突的产生及解决方法。首先在 feature1 分支修改文件内容后提交,切换到 master 分支进行不同修改并提交,导致两个分支出现冲突。尝试合并时 Git 提示冲突,需要手动解决。查看冲突文件可见 Git 标记的不同分支内容,修改为统一版本后提交,完成合并。最后用 git log --graph 查看合并记录并删除 feature1 分支。总结指出:当 Git 无法自动合并时需手动解决冲突,修改文件内容后提交即可完成合并,可通过图形化日志查看分支合并情况。

2025-11-20 20:16:26 424

原创 Git 的分支管理

本文介绍了 Git 分支管理的基本概念和操作。首先通过开发场景说明分支的作用,可以独立开发不影响主线工作。接着详细讲解了分支的创建、合并和删除流程,包括相关命令如 git branch、git checkout、git merge 等。文章还介绍了 Git 远程仓库的使用,包括添加远程库、克隆项目、获取更新和推送修改的操作方法。最后总结了多人协作的工作模式,并附上 Git 常见命令速查表。全文以图解方式直观展示分支原理,帮助读者快速掌握 Git 分支管理的核心功能。

2025-11-20 19:55:26 745

原创 SpringBoot 第一个 Web 项目

本文介绍了如何快速搭建一个 Spring Boot Web 项目。首先在 pom.xml 中添加 Web 依赖,然后创建带有 @RestController 注解的控制器类,定义返回简单字符串的 hello() 方法。启动项目会自动配置 8080 端口和内置 Tomcat 容器。

2025-11-13 09:42:05 1088

原创 SpringBoot 入门程序

本文介绍了 SpringBoot 项目从环境搭建到运行的全过程。主要内容包括:1、环境准备需安装 JDK、Maven 和 IDEA2、新建项目步骤:配置 JDK 版本、设置项目元数据【Group/Artifact 等】、选择 SpringBoot 版本及组件3、项目结构解析,包含 Java 类文件、资源文件、测试文件和 pom 文件4、运行方式可通过 IDEA 直接启动或运行主类的 main 方法文中还详细说明了主启动类的注解作用、配置文件位置及 Maven 构建配置,为 SpringBoot 初

2025-11-09 20:56:12 1099

原创 IDEA 插件开发教程

本文介绍了在 IntelliJ IDEA 中开发插件的完整流程。主要内容包括:安装 Plugin DevKit 插件、开启 IDEA 内部模式、创建插件项目、配置 Gradle 构建文件【包括修改仓库地址和使用本地 IDEA 调试】、解读 plugin.xml 配置文件、创建 Action 并绑定到 Tools 菜单、运行调试插件等关键步骤。文章还详细说明了如何定位 Action 插入位置和使用 UI 检查器定位 IDEA 源代码的方法,并提供了解决中文乱码问题的配置方案。

2025-11-09 20:11:45 961

原创 创建型设计模式:建造者模式

本文介绍了建造者模式在盖房子需求中的应用。传统方式通过抽象类和继承实现,但存在耦合性高、扩展性差的问题。建造者模式将产品和建造过程解耦,包含产品、抽象建造者、具体建造者和指挥者四个角色。代码实现中,House 类封装产品属性,HouseBuilder 抽象类定义建造流程,CommonHouse 和 HighBuilding 实现具体建造过程,HouseDirector 指挥者控制流程执行。该模式提升了程序的扩展性和维护性,适用于复杂对象的创建场景。

2025-11-09 19:46:29 474

原创 SpringBoot 概述

SpringBoot 是 Pivotal 团队开发的简化 Spring 应用开发的框架,其核心思想是 "约定优于配置"。主要特点包括:快速项目构建、内嵌 Web 容器、自动化配置、丰富的 Starter 依赖、开发者工具、应用监控功能等,大幅简化了传统 Spring 应用的配置和部署流程。学习 SpringBoot 可以显著提高开发效率,适应微服务架构需求,实现服务解耦、技术选型灵活、独立部署等优势。通过默认配置和依赖管理,开发者可以更专注于业务逻辑而非繁琐配置,使应用开发更加高效便捷。

2025-11-04 20:27:03 1524 2

原创 IDEA 插件相关介绍

本文总结了 IntelliJ IDEA 常用的开发插件及配置技巧。主要介绍了 JRebel 和 XRebel 热部署插件的安装破解方法,jclasslib 字节码查看器的英文界面设置,并分类列举了代码缩略图、Git 工具、代码格式化、API 测试等 40 余款实用插件。重点插件包括 Maven Helper、MyBatisX、LeetCode 刷题工具、代码质量检查工具等,同时提供了主题美化、开发效率提升等插件的推荐,为 Java 开发者提供了全面的 IDEA 插件配置方案。

2025-11-02 22:11:28 1012

原创 Linux 常见问题解决方案

本文总结了 Linux 系统中常见的三个问题及解决方法,将持续更新...

2025-11-02 17:52:19 216

原创 Linux 连接工具 Putty配置

Linux 的连接工具 Putty 的一些内容配置。

2025-11-02 14:50:58 431

原创 Spring 入门案例

本文介绍了 Spring 框架的基本使用流程。首先提供了 Spring 的官方下载地址,建议采用 Maven 构建项目。通过引入 spring-context-support 依赖即可包含 Spring 核心组件,同时创建了 UserBO 实体类及其 XML 配置文件。重点说明了测试类中加载 Spring 配置文件的步骤,并指出可能出现的问题及解决方案【在 pom.xml 中添加 resource 配置】。最后展示了如何通过 ApplicationContext 获取 Bean 并调用方法的完整测试流程。

2025-11-01 12:26:59 527

原创 多线程相关概念的理解

本文介绍了程序、进程与线程的基本概念:程序是静态代码,进程是动态执行的程序实例,线程是进程内部的最小执行单元。重点分析了线程调度方式【分时 / 抢占式】和多线程的优点【提高响应速度、CPU 利用率等】。同时讲解了单核与多核 CPU 的区别,以及并行【多任务同时执行】与并发【多任务交替执行】的概念差异。文章通过生动类比帮助理解计算机系统中多任务处理的原理,为学习多线程编程提供了必要的基础知识。

2025-10-30 09:52:46 621

原创 IDEA 中使用 Eclipse 快捷键

本文总结了 Eclipse 调试的常用快捷键,主要分为断点操作、调试执行和数据查看三部分。

2025-10-28 22:02:41 488

原创 中国计算机技术职业资格网

https://www.ruankao.org.cn/

2025-10-28 21:53:20 34

空空如也

空空如也

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

TA关注的人

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