自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis 配置文件

【代码】Redis 配置文件。

2025-11-15 12:55:08 77

原创 SpringCloud -- Nacos详细介绍

Nacos是一款阿里巴巴开源的微服务核心工具,主要提供两大核心功能:服务注册发现(动态管理微服务地址)和配置中心(实现配置动态更新)。它支持快速部署,通过简单配置即可实现服务注册,提供临时实例(自动注销)和持久实例(手动管理)两种模式,满足不同场景需求。Nacos具有健康检查、多环境隔离等企业级特性,能有效提升微服务架构的弹性和可维护性,是构建云原生应用的重要基础设施。

2025-08-15 21:47:23 1314 4

原创 ‘node‘ 不是内部或外部命令,也不是可运行的程序或批处理文件 和 ‘vue‘ 不是内部或外部命令,也不是可运行的程序或批处理文件 -- 包解决,不解决我直接吃

道理是一样的,找到 vue cli 下载位置。默认大家下载了,没有下载的,可以去下。

2025-07-27 20:28:40 282

原创 SpringSecurity 详细介绍(认证和授权)

本文介绍了Spring Security框架的核心功能和实现原理。Spring Security是一个强大的认证和授权框架,主要包含身份验证和访问控制两大功能。其核心实现基于一条过滤器链,包括UsernamePasswordAuthenticationFilter、ExceptionTranslationFilter和FilterSecurityInterceptor等关键过滤器。 文章详细讲解了认证流程,涉及Authentication、AuthenticationManager、UserDetailsS

2025-07-21 19:18:35 839 1

原创 StreamAPI 如何避免空指针异常问题

本文介绍了Java Stream API中避免空指针异常的几种方法。当Stream中包含null值时,直接操作会抛出NullPointerException。解决方案包括:1)使用filter(Objects::nonNull)过滤空值;2)通过Optional.ofNullable包装元素,再过滤非空Optional对象。这些方法能有效处理Stream中的null值,确保操作安全执行。文章通过字符串大写的示例代码演示了具体实现方式。

2025-07-19 12:49:08 791

原创 JavaSE -- 数组详细讲解(数组介绍,Arrays常用方法,二维数组创建)

本文介绍了Java数组的基本概念和操作方法。数组作为引用数据类型,在内存中以连续空间存储数据。文章详细讲解了数组的静态和动态创建方式,以及Arrays工具类提供的常用方法,如排序、填充、搜索等。同时说明了二维数组的特点,包括非矩形结构和两种初始化方式。对于数组的内存模型也做了简要说明,区分了基本类型和引用类型在数组中的存储差异。

2025-07-18 21:59:36 267

原创 JavaSE -- 数据操作流

数据操作流(DataOutputStream/DataInputStream)提供了一种轻量级的数据存储方案,适用于仅需存储少量基本类型属性的场景。与对象序列化不同,它通过点对点读写机制(如readUTF、readInt)直接操作原始数据类型,要求读写顺序严格一致。这种技术省略了序列化开销,但需注意不需要主动判断数据结束位置,只需按照预定义格式操作即可。典型应用场景包括简单配置存储、基础数据持久化等对性能要求较高的轻量级存储需求。

2025-07-18 20:02:53 202

原创 JavaSE -- 对象序列化和反序列化详细讲解

本文介绍了Java对象序列化和反序列化的实现方式。主要内容包括:1)对象序列化需要使用ObjectOutputStream,被序列化的类需实现Serializable或Externalizable接口;2)反序列化使用ObjectInputStream,必须确保序列化版本一致,建议手动指定serialVersionUID;3)序列化注意事项:引用类型属性也需序列化,可使用transient忽略属性,static和transient属性不会被序列化;4)Externalizable接口相比Serializab

2025-07-18 20:00:01 401

原创 Redis 命令详细介绍(Key的层次结构,通用命令,String命令,Hash命令,List命令....)

该文章详细介绍了Redis的常用命令

2025-07-14 12:28:24 1036

原创 Redis 的 Java 客户端的详细介绍(Jedis,SpringDataRedis,RedisTemplated,StringRedisTemplated)

Java Redis客户端对比与使用指南 本文介绍了Java中三种主流Redis客户端的特点和使用方法: Jedis:轻量级同步客户端,API与Redis原生命令一致,但线程不安全,需配合连接池使用 SpringDataRedis:Spring生态的集成框架,提供统一RedisTemplate API,简化操作但默认序列化方式存在不足 Lettuce:基于Netty的异步线程安全客户端(文中简要提及) 重点分析了Jedis的连接池配置和SpringDataRedis的序列化优化方案,并提供了具体代码示例。针

2025-07-13 23:03:44 706

原创 Redis 基础详细介绍(Redis简单介绍,命令行客户端,Redis 命令,Java客户端)

Redis是一款高性能的键值存储数据库,支持多种数据结构如String、Hash、List等。它具有原子性操作、持久化、主从复制等特性,适用于缓存、消息队列等场景。Redis通过内存存储实现高速读写,并提供了丰富的命令操作,如KEYS查询、DEL删除、EXPIRE设置过期时间等。String类型支持字符串、整型和浮点型数据,Hash类型适合存储对象属性。Redis采用层级格式管理Key,避免命名冲突。List类型类似双端队列,可用于实现栈、队列等数据结构。Redis还提供命令行客户端redis-cli,方便

2025-07-13 22:55:14 1424

原创 MyBatisX插件根据数据库表反向生成代码

MyBatisX插件是提升MyBatis开发效率的IntelliJ IDEA工具。使用步骤:1)在Idea中关联数据库;2)右键表选择Mybatis-Generator;3)配置代码生成路径;4)选择模板格式。该插件可快速生成Service、Mapper、Entity等代码,简化开发流程。具体安装和功能详见官网文档,本文重点介绍反向生成代码的操作方法,帮助开发者通过数据库表结构快速创建基础代码框架。

2025-07-12 20:02:17 208

原创 统一返回结果模板

本文介绍了统一返回结果的设计思路,通过封装Result类规范后端接口返回格式。Result类包含isSuccess状态标识、code状态码、message提示信息和data数据字段,并提供了success()和error()静态方法创建标准响应。类设计采用链式调用风格,支持灵活设置数据,并预定义了SUCCESS(20000)和ERROR(20001)两种状态码。这种规范化设计便于前端统一处理接口响应,提升开发效率。

2025-07-12 19:59:34 442

原创 MybatisPlus --代码生成器

MyBatis-Plus代码生成器使用指南 本文介绍了MyBatis-Plus代码自动生成器的使用步骤,可快速生成实体类、Mapper、Service等代码。主要包括:1)导入必要的依赖(模板引擎、代码生成器、Swagger3);2)配置代码生成器,设置数据库连接、作者信息、输出目录、包结构等;3)支持定制化配置,如开启Lombok、链式编程、Rest风格等;4)使用Freemarker作为模板引擎。通过该工具可大幅提升开发效率,避免重复编写基础代码。注意需提前配置好数据库连接和Swagger环境。

2025-07-12 19:57:36 286

原创 JavaSE -- StreamAPI 详细介绍(已更新,完全版,巨详细)

Stream与Optional使用指南 Stream是Java 8引入的流式数据处理API,可以看作一条数据加工流水线。它通过中间操作和终端操作实现链式处理,具有不存储数据、不改变数据源和延迟执行三大特性。Stream与集合的核心区别在于:Stream专注于数据处理,采用内部迭代和声明式编程风格。 Optional类是Java 8引入的空指针异常解决方案,提供安全处理可能为null的对象的方法。常用方法包括: of()/ofNullable()创建Optional对象 isPresent()检查值是否存在

2025-07-11 17:19:26 1052

原创 JavaSE -- Optional类详细介绍

摘要: Optional类是JDK8引入的,用于简化空指针异常(NullPointerException)的处理。传统多层嵌套的null检查代码冗长,Optional提供了更简洁的方式。常用方法包括: Optional.empty():创建空Optional,取值时抛出异常。 Optional.of()/ofNullable():封装对象,of()对null值抛出异常,ofNullable()允许null。 get():获取值,若为空则抛出异常。 isPresent():检查是否有值,可结合Consumer

2025-07-11 15:11:20 431

原创 MyBatis-Plus 乐观锁插件干什么,怎么配?看这篇文章就够了。

MyBatis-Plus乐观锁插件使用摘要:通过OptimisticLockerInnerInterceptor插件实现乐观锁机制,在实体类中添加@Version注解标记版本字段。更新数据时自动检查版本号,若未被修改则执行更新并将版本号+1。配置步骤包括:1)注册插件到拦截器;2)实体类添加版本字段;3)执行更新操作时自动验证版本。该机制通过版本号比对有效防止并发修改冲突,实现简单高效的并发控制。

2025-07-10 23:45:59 322

原创 什么?不知道 MyBatisPlus 多数据源(动态数据源)干什么的,怎么使用,看这篇文章就够了。

本文介绍了MyBatis-Plus多数据源配置方法,重点讲解了开源生态dynamic-datasource插件的使用步骤。首先需要导入SpringBoot3专用依赖包,然后在yml配置文件中定义主从数据源信息,包括连接参数和默认数据源设置。通过@DS注解可以灵活切换数据源,该注解支持类和方法级使用,方法级优先级更高。最后通过测试代码展示了不同Service访问不同数据库的验证过程,实现了多数据源的动态切换功能。

2025-07-10 23:40:21 312

原创 JavaSE -- Lambda表达式

Java 8的Lambda表达式是重要的新特性,允许将函数作为方法参数传递,简化代码但可能降低可读性。其语法为(parameters) -> expression或(parameters) ->{ statements; }。Lambda适用于函数式接口(只有一个抽象方法),如Runnable、Consumer、Supplier等。内置四大核心函数式接口:Consumer(有参无返回值)、Supplier(无参有返回值)、Function(有参有返回值)、Predicate(断言型)。方法引用可

2025-07-09 15:47:16 827 1

原创 JavaSE -- 集合详细讲解(下篇)

本文介绍了Java中常见的Map集合及其实现类,包括HashMap、LinkedHashMap、TreeMap、Hashtable和Properties,以及Queue接口的实现类LinkedList和ArrayDeque。重点分析了HashMap的特性(初始容量16,负载因子0.75,扩容机制)和常用方法(put、get、containsKey等),并详细比较了Hashtable与HashMap在安全性、null值处理、扩容方式等8个方面的区别。此外,还介绍了Properties读取配置文件的方法以及St

2025-07-09 08:49:37 951

原创 JavaSE -- Hashtable 和 HashMap 的异同

Hashtable和HashMap都实现了Map接口,但有显著差异。Hashtable是JDK1.0基于Dictionary类的线程安全实现,不允许null键值;HashMap是JDK1.2加入的非线程安全实现,允许null键值。数据结构上,HashMap采用数组+链表+红黑树(链表长度>8转红黑树),Hashtable仅数组+链表。初始容量分别为16和11,扩容方式为2倍和2倍+1。哈希计算上,Hashtable直接取模,HashMap会进行二次哈希优化分布。两者加载因子均为0.75。

2025-07-09 08:44:55 421

原创 JavaSE -- 集合详细介绍(中篇)

本文介绍了链表、LinkedList和哈希表的数据结构。主要内容包括: 链表分为单向链表、双向链表和循环链表,具有插入删除快但查询慢的特点; LinkedList常用方法清单,包括添加、删除、查询等操作; LinkedList与ArrayList的区别:前者适合频繁增删,后者适合随机查询; Vector与ArrayList的差异:线程安全、扩容机制等; 哈希表的简介,通过键值直接访问数据,解决数组查询效率低的问题。文章对各类数据结构的特性、优缺点及操作方法进行了系统梳理。

2025-07-07 19:10:36 1468

原创 JavaSE -- ArrayList详细讲解

ArrayList是Java中List接口的实现类,基于动态数组数据结构。本文介绍了ArrayList的四种遍历方式(for循环、增强for循环、迭代器、for循环+迭代器)和21个常用方法(增删改查等)。重点比较了Iterator和ListIterator的区别:ListIterator支持双向遍历并提供更多操作方法。特别提醒在循环删除元素时应使用迭代器而非foreach,否则可能引发异常。文章还提供了相关方法的使用示例和注意事项,适合Java开发者快速掌握ArrayList的核心用法。

2025-07-06 22:22:08 665

原创 JavaSE -- 泛型详细介绍

摘要:Java泛型通过参数化类型增强了类型安全性,在编译阶段检测类型错误。主要包含泛型类、泛型接口和泛型方法三种形式,使用T、E、K、V等字母规范类型参数。泛型类/接口通过尖括号定义类型,泛型方法在调用时指定类型。为解决泛型引用传递问题,提供了三种通配符:无边界(<?>)、上边界(<? extends E>)允许子类类型,下边界(<? super E>)允许父类类型。泛型仅支持引用类型,有效避免了运行时类型转换异常,提升了代码的灵活性和安全性。(150字)

2025-07-06 22:19:18 621

原创 Project -- 快速入门

摘要:本文详细介绍了使用Microsoft Project创建在线学习平台项目管理计划的步骤,包括甘特图和资源工作表的建立、项目日历设置(含节假日和调休安排)、周期性任务创建、里程碑设置、任务依赖关系定义(FS/SS/FF/SF四种类型)、资源分类(工时/材料/成本类)以及资源费率和可用性配置。通过6个月的项目周期示例,完整演示了从需求分析到上线部署的全流程规划方法,为项目管理软件初学者提供了实用的操作指南。(149字)

2025-07-02 23:08:00 845

原创 如何使用StartUML绘制类图,用例图,时序图入门

本文介绍了StarUML软件的基本使用方法,主要包括软件设置和两种UML图表的绘制。在软件设置部分,讲解了属性编辑窗口的显示方法以及图形风格的自定义设置。在类图部分,详细说明了如何创建子模块和视图、定义类的内部结构(属性、方法等)以及绘制类之间的关系。在用例图部分,介绍了include和extend两种常用关系,并演示了简单的用例图绘制流程。通过图文结合的方式,帮助用户快速掌握StarUML的基本操作技巧。

2025-07-01 17:18:55 923

原创 SpringBoot --项目启动的两种方式

SpringBoot环境启动的两种方法:1) Maven项目方式:需引入spring-boot-starter-parent和web依赖,编写带@SpringBootApplication注解的启动类,并创建@RestController控制器;2) Spring Initializr方式:通过向导自动生成项目结构,简化启动类和依赖配置过程。两种方法都能快速搭建SpringBoot Web应用,后者操作更简单,适合初学者。

2025-06-30 22:20:48 346

原创 SpringBoot -- 自动配置原理

本文向大家介绍了 SpringBoot 自动配置的源码解析及其原理,以及假如面试被问到该如何回答

2025-06-30 22:17:27 1044 4

原创 SpringBoot -- 以 jar 包运行(以及常见错误分析)

SpringBoot项目打包为jar运行指南 确保pom.xml包含spring-boot-maven-plugin插件; 通过Maven的package命令生成jar包(图示打包步骤); 在终端使用java -jar命令运行jar文件; 常见问题: Maven版本过低需升级(3.6.3以上版本); JDK环境变量未正确配置导致启动失败。 注意:非Spring Initializr创建的项目需手动添加打包插件配置。

2025-06-28 21:50:37 344

原创 SpringBoot -- yaml文件使用

本文介绍了YAML文件在SpringBoot中的基本使用方式。主要内容包括: YAML文件特点:以数据为中心,通过缩进表示层级,支持多种数据结构 基本类型读取:使用@Value注解获取配置值 对象读取:通过@ConfigurationProperties和前缀匹配简化配置 Environment获取数据:使用getProperty方法直接读取配置 集合类型读取:包括List、Set、Map的多种写法 @ConfigurationProperties注解的应用及常见报错处理 YAML的松弛匹配特性:变量名与配

2025-06-28 21:46:30 1379

原创 SpringBoot -- 热部署

SpringBoot热部署指南:实现开发过程中代码修改的自动重启,避免频繁手动重启项目。主要包括:1)通过spring-boot-devtools依赖实现热部署;2)配置banner.txt自定义启动画面;3)IDEA设置自动编译;4)热部署原理基于双ClassLoader机制;5)可配置排除不需要热部署的资源路径。该方案能显著提升开发效率,特别适合大型应用开发场景。

2025-06-27 15:47:14 282

原创 SpringBoot -- 整合 Swagger3

SpringBoot3整合Swagger3实现API文档自动生成。主要步骤包括:1)引入springdoc-openapi依赖;2)配置Swagger基本信息;3)在启动类启用Swagger注解;4)通过@Tag、@Operation等注解编写Controller接口说明;5)在实体类中使用@Schema描述复杂参数。整合后可自动生成可视化API文档,支持接口测试,方便前后端协作开发。文档包含接口描述、请求参数、响应数据等信息,并支持在线调试功能。

2025-06-27 15:30:49 369

原创 SpringBoot -- 整合Junit

本文介绍了SpringBoot整合Junit单元测试的方法。通过单元测试可以避免传统开发中需要完成整套流程才能测试的低效问题,尤其适用于大型项目调试。操作步骤包括:1)导入SpringBoot和测试相关依赖;2)编写待测试的Service代码;3)创建测试类并添加测试方法;4)解决运行时的红色警告提示(在Idea中添加-Xshare:off启动参数)。单元测试能有效提升开发效率,减少重复启动服务的等待时间。

2025-06-27 12:05:55 360

原创 JavaSE -- 时间类的详细介绍(Date,LocalDate)

本文摘要:Java日期时间处理类详解,包括:Date类 - 基本日期操作,比较方法DateFormat类 - 日期格式化与解析,支持自定义格式Calendar类 - 抽象日历类,获取详细日期信息GregorianCalendar - 公历实现,支持闰年判断JDK8新特性:LocalDateTime系列 - 更安全的日期时间操作Instant - 时间戳处理DateTimeFormatter - 新版日期格式化Period和ChronoUnit - 日期间隔计算重点介绍了各类的创建方

2025-06-19 14:48:04 353

原创 JavaSE --- 字符串详细介绍

在本文会详细介绍 String 的创建,String的构造,String常用方法,String拼接,以及StringBuilder和StringBuffer相关介绍,正则表达式介绍及相关学习网站推荐

2025-06-19 12:03:23 1022

原创 JavaSE - Object 类详细讲解

本文详细介绍了在 JavaSE 中 Object 类的简单介绍和常用方法

2025-06-17 21:42:35 447

原创 JavaSE -- 集合详细介绍(上篇)

包含集合相关的详细介绍,在这篇文章会详细介绍集合概述,泛型,ArrayList等等。

2025-06-17 13:02:54 1137 1

原创 L2-003 月饼

贪心 + 代码注释

2025-04-03 11:45:30 254

原创 L2-002 链表去重

vector模拟链表,有代码注释

2025-04-03 11:02:51 238

原创 L2-001 紧急救援

第四个样例为什么错,堆优化版dikkstra

2025-04-02 21:24:05 311

空空如也

空空如也

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

TA关注的人

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