自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(566)
  • 资源 (1)
  • 收藏
  • 关注

原创 MySql 中 FIND_IN_SET函数的使用总结及案例 过滤某个字符串列表中是否包含某个字符

MySQL的FIND_IN_SET函数用于在逗号分隔的字符串中查找指定字符串的位置。语法为FIND_IN_SET(str,strlist),返回位置(从1开始),未找到返回0。使用时需注意:参数不能有空格,区分大小写,不识别含逗号的字符串。常见用途包括在WHERE条件中筛选数据、获取字符串位置等。该函数性能不如规范化表结构,大数据量时建议改用关联表或JSON函数。示例展示了基本查找、条件筛选、位置获取及边界情况处理。

2025-11-07 10:58:47 148

原创 MySQL GROUP BY 和 GROUP_CONCAT 使用方法总结,group by后将其他的字段整合到一个字段中 并通过逗号链接或指定其他链接符号

本文总结了MySQL中GROUP BY和GROUP_CONCAT的基本用法及特性。GROUP BY用于按列分组数据,SELECT中的非聚合列必须包含在GROUP BY中。GROUP_CONCAT可将分组值连接成字符串,支持DISTINCT去重、ORDER BY排序和自定义分隔符。文中提供了4个实用示例,包括分组统计、连接字符串、高级排序以及设置最大长度限制。GROUP_CONCAT默认受group_concat_max_len限制(1024字符),可以通过参数调整。

2025-11-07 10:08:38 242

原创 spring 中 OncePerRequestFilter 的作用以及使用场景,每个请求只触发一次

OncePerRequestFilter是Spring提供的过滤器基类,确保每个请求只执行一次过滤逻辑,防止重复处理。适用于跨域配置、权限验证、日志记录和请求包装等场景。通过继承该类并重写doFilterInternal()方法,可实现请求耗时统计、访问日志记录等功能。示例中的LoggingFilter演示了如何记录请求开始/结束时间,并保证日志只输出一次。该过滤器有效解决了异步请求或转发请求中可能出现的重复处理问题。

2025-10-23 09:00:46 319

原创 Java Spring MVC 中 WebMvcConfigurer 和 HandlerInterceptor之间的关系和用法案例

Spring MVC中,WebMvcConfigurer和HandlerInterceptor分别承担不同功能:WebMvcConfigurer是配置接口,用于自定义MVC功能(拦截器注册、资源处理等);HandlerInterceptor是请求拦截器接口,提供preHandle(请求前)、postHandle(处理后)和afterCompletion(完成后)三个拦截点。两者通过WebMvcConfigurer的addInterceptors方法建立关联,实现配置与业务逻辑分离。典型应用包括注册自定义拦截

2025-10-23 08:38:21 358

原创 Java Hutool工具包中 StopWatch 性能监控工具介绍和使用案例

Hutool的StopWatch是一个便捷的性能监控工具,用于测量代码执行时间。它支持多任务监控,提供任务管理、耗时统计和格式化输出等功能,通过start()/stop()方法记录任务时间,并能获取总耗时和任务详情。适用于性能调优、方法监控、代码优化等场景,帮助开发者快速定位程序瓶颈。示例展示了如何监控数据库查询、数据处理等任务,并输出详细的统计信息。

2025-10-22 09:08:23 460

原创 MySQL COALESCE函数用法和示例

SQL中的COALESCE函数用法简介:该函数返回参数列表中第一个非NULL值,语法为COALESCE(value1, value2, ...)。从左到右检查参数,返回第一个非NULL值,若全为NULL则返回NULL。常见用途包括:为NULL值设置默认值、多级默认值处理,以及确保聚合函数结果非NULL。示例展示了如何用COALESCE(column_name,0)返回0替代NULL值,以及多级优先级的应用场景。

2025-10-14 17:00:23 223

原创 Java Deque 和 ArrayDeque(栈的推荐使用) 基本介绍以及使用

ArrayDeque是Java集合框架中Deque接口的高效实现,支持双端操作、动态扩容和非线程安全。它提供了栈(LIFO)和队列(FIFO)操作的方法,如push/pop和offer/poll等,比Stack和LinkedList性能更优。典型应用场景包括实现栈/队列结构、滑动窗口问题和回文检查。相比传统Stack,ArrayDeque性能更好且不抛出异常;相比LinkedList,它在大多数操作上更快且内存使用更紧凑。使用时需注意不支持null元素且非线程安全。

2025-09-30 16:03:01 382

原创 Java Stack(栈)基本使用以及使用场景,常用方法

本文介绍了Java中的Stack类及其应用。Stack是继承自Vector的集合类,实现了后进先出(LIFO)的栈结构,提供push、pop、peek等基本操作,以及继承自Vector的size、contains等方法。文章包含使用示例和常见应用场景,如表达式求值、函数调用模拟等,并指出Stack已被标记为遗留类,推荐使用ArrayDeque替代,同时提醒注意线程安全和性能问题。

2025-09-30 15:44:32 344 1

原创 Java中 通过 Queue 队列操作避免递归操作的基本思路和简单案例

使用Queue模拟递归通过手动管理状态替代系统调用栈,避免栈溢出风险。其FIFO特性适合广度优先遍历,基本实现步骤为:初始化队列→循环处理任务→加入子任务。在血缘关系查询等场景中,该方法能安全处理复杂依赖网络,具有可控性强、内存使用优化等优势,适用于树形/图结构的遍历需求。

2025-09-30 14:08:41 1054

原创 Java基础 Queue 队列的基本使用介绍和案例

Java中的Queue接口实现了先进先出(FIFO)原则,提供插入(add/offer)、移除(remove/poll)和检查(element/peek)三类核心操作。常见实现包括LinkedList、ArrayDeque、PriorityQueue等,适用于BFS算法、生产者-消费者模型等场景。有界队列(如ArrayBlockingQueue)通过固定容量限制资源使用,满队列时不同方法表现各异。在并发环境下应选用线程安全实现,使用时需根据需求选择合适方法避免异常。队列在任务调度、缓存系统等领域有广泛应用。

2025-09-30 13:59:05 989

原创 JWT token 简要介绍以及使用场景和案例

JWT是一种基于JSON的安全令牌标准,由Header、Payload和Signature三部分组成,用于身份认证和信息交换。其工作原理是服务器生成令牌后由客户端存储并随请求发送,服务器验证后处理请求。JWT适用于身份认证、API授权等场景,具有无状态、跨域支持等优势,但需注意密钥保管和过期设置。

2025-09-29 15:28:50 442

原创 XML中的 CDATA mybaitis xml中的 <![CDATA[ xxxx ]]>

CDATA是XML中用于处理特殊字符的重要标记,主要用于避免转义特殊符号(如<>&)和嵌入代码片段(JS/CSS/SQL)。典型应用包括:1)存储包含比较运算符的SQL查询;2)配置文件中的原始代码;3)Web服务返回的HTML/XML片段。其核心优势是简化XML编写、提高可读性并保持原始数据格式,特别适合需要保留特殊字符和代码结构的场景。

2025-09-26 13:25:12 311

原创 TransmittableThreadLocal 与 ThreadLocal 的区别

ThreadLocal与TransmittableThreadLocal(TTL)主要区别在于线程池场景下的表现。ThreadLocal会导致线程复用时的数据污染,而TTL能自动传递和隔离上下文。ThreadLocal不支持异步执行,TTL则天然支持跨线程传递。TTL解决了ThreadLocal在线程池中的数据残留问题,避免了手动清理的需求,更适合异步编程环境。两者的选择取决于是否需要跨线程传递上下文的需求。

2025-09-19 11:06:33 247

原创 Spring Cloud中配置多个 Kafka 实例的示例

在Spring Cloud中配置多个Kafka实例,可以通过YAML文件定义不同实例的配置参数,如bootstrap-servers、消费者组ID和序列化器等。然后创建配置类分别初始化每个Kafka实例的ProducerFactory、ConsumerFactory和KafkaTemplate。使用时通过@Qualifier注解注入特定的KafkaTemplate进行操作,同时为不同Kafka实例配置独立的监听器容器工厂。这种方式支持在单个应用中同时连接多个Kafka集群,每个集群可独立配置和使用。

2025-09-18 14:42:02 404

原创 Spring中 @Value注解设置默认值

Spring中@Value注解设置默认值的方法摘要:1)使用冒号语法${key:default}设置基本类型和字符串默认值;2)支持空字符串或null默认值;3)可设置数组和含特殊字符的复杂默认值;4)结合SpEL表达式实现动态默认值。需注意数据类型兼容性,空字符串不会触发默认值,建议必要配置不设默认值以暴露问题。这种方式能有效避免配置缺失导致的异常。

2025-09-12 14:53:39 419

原创 Got error produce response with correlation id Xx on topic-partition XX, retry Error: CORRUPT_MESSAG

在使用阿里云Kafka时,发送带key的消息到指定topic后出现持续CORRUPT_MESSAGE报错。排查发现是由于阿里云Kafka不支持幂等生产者(enable.idempotence)特性导致。虽然已在配置文件中设置enable.idempotence=false,但由于KafkaProperties类未包含该属性而失效。最终通过在构建生产者时手动将该属性加入properties中解决问题。对于直接使用Properties类的情况,可直接put该配置项即可解决。

2025-09-10 15:19:16 379

原创 Spring Cloud @RefreshScope 作用是什么?

摘要:@RefreshScope是Spring Cloud的核心注解,支持配置动态刷新而无需重启应用。它通过特殊作用域机制,在配置变更时重建Bean实例以加载新值,适用于@Value和@ConfigurationProperties标注的属性。需配合配置中心使用,注意其重建特性对性能的影响,常用于数据库连接等需热更新的场景。

2025-09-10 13:22:05 373

原创 Spring Bean 生命周期中的 @PostConstruct 注解生效时机

摘要:@PostConstruct是Spring框架中用于Bean初始化的JSR-250注解,在依赖注入完成后执行特定方法。它确保所有依赖资源就绪后才执行初始化逻辑,具有只执行一次、无参数无返回值等特点。该注解方法在Bean生命周期中位于实例化和依赖注入之后,Bean可用之前。使用时需注意方法签名限制和异常处理,适用于单例等作用域Bean,是实现可靠初始化的有效工具。

2025-09-01 17:57:55 395

原创 mysql中的常见的索引类型及其特点

MySQL索引类型包括B-Tree、哈希、全文和空间索引等。B-Tree适合范围查询和排序,哈希适用于等值查找但限制较多,全文索引支持文本搜索,空间索引用于地理数据。每种索引有不同适用场景,合理选择能显著提升数据库性能。

2025-08-12 20:57:28 467

原创 B树索引和B+树索引有什么区别?

B树和B+树索引是数据库常用的树形结构,主要区别在于:B树所有节点存储数据,而B+树仅叶子节点存储数据,内部节点只作索引;B+树叶子节点通过链表连接,支持高效范围查询。示例中,B树内部节点包含数据,而B+树将所有数据集中在叶子层并链式连接,使B+树在范围查询和顺序访问时性能更优,因此被MySQL等数据库广泛采用。

2025-08-12 20:49:52 488

原创 【设计模式】建造者模式

/ 电脑产品类// 私有构造函数,只能由 Builder 创建@Override'}';// 静态内部类 Builder// 必填参数// 可选参数(默认值)private String gpu = "集成显卡";// 构造函数:必填参数// 设置可选参数的方法(链式调用)// 构建最终对象。

2025-08-08 20:30:00 1070

原创 【设计模式】抽象工厂模式 (工具(Kit)模式)

/ 按钮接口// 文本框接口// GUI工厂接口。

2025-08-08 20:15:00 1092

原创 【设计模式】简单工厂方法模式(静态工厂方法模式) 创建型模式

/ 运算接口。

2025-08-08 20:00:00 1697

原创 【设计模式】访问者模式模式

/ 访问者接口// 元素接口。

2025-08-08 19:15:00 1093

原创 【设计模式】工厂方法模式 (虚拟构造器模式,多态工厂模式)

/ 数据库连接接口(产品)// 抽象工厂类(创建者)// 工厂方法:由子类实现,决定创建哪种连接// 其他通用逻辑(可选)

2025-08-08 15:20:24 897

原创 【设计模式】模板方法模式

/ 饮品制作模板(抽象类)// 模板方法:定义制作饮品的通用流程(不可被重写)// 煮水brew();// 冲泡// 倒入杯中// 添加调料// 公共方法(所有饮品都一样)System.out.println("✅ 正在煮水...");System.out.println("✅ 正在倒入杯中...");// 抽象方法:由子类实现// 冲泡方式不同// 添加的调料不同。

2025-08-07 21:15:00 856

原创 JVM中年轻代、老年代、永久代(或元空间)、Eden区和Survivor区概念介绍

在Java虚拟机(JVM)中,内存管理是自动化的,这主要通过垃圾回收机制实现。JVM将堆内存划分为不同的区域,以便更高效地管理和回收对象。以下是关于年轻代、老年代、永久代(或元空间)、Eden区和Survivor区等概念的详细介绍。

2025-08-02 11:46:24 633

原创 JVM中的垃圾回收暂停是什么,为什么会出现暂停,不同的垃圾回收机制暂停对比

JVM中的垃圾回收暂停(GC Pause)是执行垃圾回收时应用程序线程的暂停,主要为了保证数据一致性。不同垃圾收集器表现出不同的暂停特性:Serial GC完全串行执行导致长时间停顿;Parallel GC通过多线程缩短停顿;CMS和G1通过并发标记减少停顿,但仍需短暂STW;ZGC和Shenandoah实现了毫秒级极低停顿。优化手段包括选择合适的收集器(如低延迟的ZGC)、调整堆大小和分代比例。完全消除停顿不可行,但现代收集器已大幅降低停顿影响,需根据应用需求(吞吐量或延迟)选择合适的GC策略。

2025-08-02 11:36:59 1286

原创 JVM 调优中JVM的参数如何起到调优动作?具体案例,G1GC垃圾收集器参数调整建议

JVM调优参数使用案例,G1GC调优案例

2025-08-02 11:26:38 983

原创 MySQL中索引失效的常见场景

MySQL索引失效常见场景及解决方法:1.对索引列使用函数或计算会导致失效,应避免在条件中使用函数;2.数据类型不匹配会禁用索引,需确保查询与列类型一致;3.LIKE以通配符开头无法使用索引,建议将通配符放在末尾;4.OR条件中若有一边无索引会导致整体失效,可改用UNION ALL;5.隐式转换会破坏索引使用;6.不等于操作符可能导致失效;7.对索引列进行NULL判断可能失效;8.复合索引未包含查询列需回表查询。使用EXPLAIN分析执行计划可验证索引使用情况。

2025-08-02 11:06:48 430

原创 【设计模式】状态模式 (状态对象(Objects for States))

/ 订单状态接口。

2025-07-28 21:54:24 1022

原创 常见的JVM虚拟机的参数详解

JVM参数用于配置Java应用程序运行时的内存、垃圾回收等行为,主要分为标准参数(如-version)、非标准X参数(如-Xmx设置堆大小)和高级XX参数(如-XX:+UseG1GC选择垃圾收集器)。通过合理配置这些参数可以优化性能,但需注意不同JVM版本的差异。调试工具(如VisualVM)可帮助监控参数效果。

2025-07-28 19:13:55 469

原创 Java类加载机制详解

本文详细介绍了Java类加载机制,包括类加载的基本概念、时机、过程(加载、连接、初始化)及类加载器体系(启动类、扩展类、应用类和自定义类加载器)。重点解析了双亲委派模型的工作原理、优势及实现代码,同时探讨了打破该模型的特殊场景。文章还列举了类加载中的常见问题及解决方案,并提供了自定义类加载器的实践示例。最后提到了JDK模块化系统对类加载机制的影响。这些知识对Java开发中的类冲突解决、性能优化和系统设计具有重要意义。

2025-07-28 19:10:35 714

原创 Java类加载机制

Java类加载机制是JVM的核心功能,遵循"按需加载"原则,主要分为加载、链接(验证/准备/解析)、初始化三个阶段。加载阶段读取.class文件并创建Class对象;链接阶段验证字节码合法性并分配静态变量内存;初始化阶段执行静态代码块和变量赋值。类加载器采用双亲委派模型,确保核心类库安全。整个过程具有线程安全性,且支持动态加载和卸载(极少发生)。该机制确保了Java程序的动态性和安全性,是JVM运行的基础支撑。

2025-07-28 19:09:08 669

原创 MySQL 查询重复数据的方式总结

本文介绍了在MySQL中查询重复数据的几种方法:1.使用GROUP BY和HAVING查找特定字段的重复值;2.通过子查询或连接获取重复记录的详细信息;3.同时显示重复数据及其出现次数。文中提供了具体SQL示例,并提醒注意处理大数据集时的性能问题,建议添加索引并备份数据。适用于需要识别和管理数据库中重复记录的场景。

2025-07-28 18:58:03 426

原创 【设计模式】观察者模式 (发布-订阅模式,模型-视图模式,源-监听器模式,从属者模式)

观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象。当主题对象状态变化时,会自动通知所有观察者进行更新。这种模式实现了对象间的松耦合,常用于以下场景:1) GUI事件处理;2) 发布/订阅系统;3) MVC架构中的模型-视图同步;4) 实时数据监控。模式包含四个核心角色:主题、具体主题、观察者和具体观察者。典型实现中,主题维护观察者列表并提供注册/注销方法,观察者实现更新接口响应状态变化。该模式优势在于解耦和自动通知,但需要注意避免循环调用和更新效率问题。

2025-07-21 21:34:59 1324

原创 【设计模式】迭代器模式 (游标(Cursor)模式)

迭代器模式是一种行为型设计模式,用于顺序访问聚合对象中的元素而不暴露其内部结构。核心思想是将遍历行为从聚合类中分离,封装在迭代器对象中,实现单一职责原则。该模式包含迭代器接口、具体迭代器、聚合接口和具体聚合类四个角色。典型应用场景包括集合类库、自定义数据结构等。优点在于简化遍历、增强封装性、支持多种遍历方式;缺点是增加了系统复杂度。代码示例展示了如何实现一个基本的迭代器模式,通过统一接口遍历不同数据结构。该模式符合开闭原则,便于扩展新的聚合类和迭代器。

2025-07-21 21:16:41 733

原创 【设计模式】备忘录模式(标记(Token)模式)

备忘录模式是一种行为型设计模式,用于在不暴露对象内部结构的情况下保存和恢复对象状态。它由三个核心角色组成:Originator(原发器)负责创建和恢复状态,Memento(备忘录)存储状态,Caretaker(负责人)管理备忘录。该模式适用于需要撤销/重做、游戏存档或版本控制等场景,通过封装状态信息保护数据隐私。典型的实现方式包括将备忘录类设为原发器的内部类或限制其访问权限,确保只有原发器能操作备忘录数据。代码示例展示了文本编辑器的状态保存和恢复过程,实现了撤销功能。

2025-07-13 20:23:14 1195

原创 【设计模式】策略模式(政策(Policy)模式)

策略模式摘要(149字) 策略模式是一种行为型设计模式,通过定义可互换的算法族来优化代码结构。核心思想是将算法封装为独立策略类(如支付方式、排序算法等),由环境类动态选择使用。该模式包含三个角色:抽象策略接口、具体策略实现类和持有策略引用的上下文类。主要优势在于解耦算法实现与使用,支持运行时策略切换,避免条件分支,符合开闭原则。典型应用场景包括支付系统、折扣计算和物流配送等需要灵活切换业务规则的场景。通过Java代码示例展示了微信/支付宝支付策略的实现过程,体现了模式的可扩展性和易维护性。

2025-07-13 16:36:15 978

原创 【设计模式】命令模式 (动作(Action)模式或事务(Transaction)模式)宏命令

命令模式是一种行为型设计模式,将请求封装为对象,实现发送者和接收者的解耦。它包含四个核心角色:命令接口(Command)、具体命令类(ConcreteCommand)、调用者(Invoker)和接收者(Receiver)。这种模式支持撤销/重做、任务队列等功能,常见于智能家居控制、文本编辑器等场景。通过Java代码示例展示了遥控器控制家电的实现,其中命令对象封装了具体操作,调用者只需触发命令执行而无需了解实现细节,体现了"封装请求"的设计思想。

2025-07-13 16:18:48 1190

kingbase8-8.2.0.jar

kingbase8人大金仓驱动jar包,也可以到官网去找

2021-04-10

空空如也

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

TA关注的人

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