自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于策略模式的那些事

策略模式是一种经典的行为设计模式,核心思想是将算法封装成独立类,使其可互相替换。它解决了三大痛点:消除if-else地狱、遵循开闭原则、提高算法复用性。策略模式包含三个角色:抽象策略接口、具体策略类和上下文调度中心。通过生活例子(出行方式选择)和代码演示,展示了从基础实现到性能优化(HashMap优化)、再到灵活判断(canHandler方法)的演进过程。该模式使代码更优雅、易维护,特别适合需要频繁变更或扩展算法的场景。

2026-04-19 20:29:44 18

原创 抽奖系统(二)注册模块

本文主要介绍了用户模块注册功能的实现,重点包括敏感字段加密和参数校验。对于手机号采用AES对称加密,密码使用SHA256哈希加密,通过MyBatis的TypeHandler实现自动加解密。参数校验使用Spring Validation和正则表达式验证邮箱、手机号等格式,并检查字段唯一性。系统采用三层架构设计(Controller-Service-DAO),使用统一异常处理捕获各类异常。通过日志记录和错误码机制提升系统可维护性,实现了安全可靠的用户注册功能。

2026-03-06 16:56:17 428 14

原创 抽奖系统(一)

本文描述了一个抽奖管理系统的基本功能架构和技术实现方案。系统包含管理员模块(注册/登录)、人员管理、奖品管理、活动管理、抽奖功能以及通知模块。管理员可通过电话或邮箱登录,支持创建普通用户和管理奖品活动。抽奖过程包含多轮抽奖环节,确保每人仅中奖一次,并具备异常处理机制。技术实现方面采用Spring Boot框架,包含错误码统一管理、自定义异常处理、通用返回封装、序列化工具和日志配置等功能模块。系统通过分层架构设计,实现了前后端分离,并采用统一的错误处理和日志记录机制,确保系统稳定性和可维护性。

2026-03-06 11:43:02 711 24

原创 String类常见用法

本文摘要: Java字符串处理主要涉及String、StringBuilder和StringBuffer三类。String具有不可变性,提供了构造、比较(==、equals、compareTo)、查找、转换、替换、拆分和截取等操作。StringBuilder和StringBuffer用于可变字符串操作,支持append等方法。字符串常量池优化了相同字符串的内存使用,直接赋值的字符串会共享常量池对象,而new创建的字符串则生成独立对象。理解这些特性对高效处理字符串至关重要。

2026-03-05 23:40:05 344 6

原创 快速选择算法

本文介绍了快速选择算法及其在解决"数组中第K个最大元素"和"最小K个数"问题中的应用。核心是通过三路划分将数组分为小于、等于和大于基准值的三个区域,再根据K值所在区间递归处理部分数组,实现O(n)时间复杂度。文章详细讲解了算法实现步骤,包括基准值选择、三指针划分策略以及递归终止条件,并提供了完整代码示例。该算法相比冒泡排序等传统方法更高效,特别适用于需要快速定位特定排名元素的场景。

2025-12-10 17:19:14 796 4

原创 高效IO的理解

本文介绍了高效IO替代Scanner的使用场景及实现方法。通过对比分析指出,Scanner在小规模调试时简单易用,但在大数据量输入时性能较差,而高效IO(BufferedReader)能提升10倍以上性能。给出了包含Read类和main类的完整代码实现,详细解析了StringTokenizer分割字符串和BufferedReader缓冲读取的原理。重点讲解了next()方法的工作流程,以及nextInt()、nextLine()等方法的具体实现。最后通过输入案例的执行流程图解,展示了方法调用顺序和数据处理过

2025-09-28 15:12:02 699 23

原创 常见位运算总结

本文介绍了位运算的基本操作,包括四种位运算符(&、|、~、^)和三种移位运算符(<<、>>、>>>)。详细讲解了按位与、或、取反、异或的运算规则,以及左移、右移、无符号右移的实现原理。同时提供了5个典型例题及解法:1)判断某二进制位是0/1;2)将某位改为1;3)将某位改为0;4)提取最右侧的1;5)将最右侧1改为0。强调位运算代码虽简洁但逻辑复杂,需要多加练习掌握。建议使用括号明确运算优先级。

2025-09-23 14:36:35 876 26

原创 线程池的介绍

线程池相关知识

2025-04-21 14:50:21 855 33

原创 单例模式:懒汉和饿汉

单例模式的相关了解

2025-04-16 11:39:16 1309 26

原创 线程安全问题

线程安全问题的部分内容

2025-04-10 16:33:33 1125 10

原创 操作系统里的秘密生活:为什么你的电脑能同时“打游戏”和“听音乐“

操作系统,进程线程,多任务以及操作系统和CPU关系的介绍

2025-02-24 22:20:28 1198 48

原创 MYSQL 创建索引

MYSQL中创建索引

2024-12-29 14:25:11 3051 15

原创 MYSQL 索引

MYSQL中索引介绍

2024-12-28 14:02:01 1015 6

原创 我的创作纪念日

关于一些在学习上的认识

2024-12-10 16:28:29 451 6

原创 MYSQL聚合函数与分组查询

MYSQL中的聚合函数和分组查询

2024-12-03 16:54:54 1321 19

原创 MYSQL数据库约束

数据库约束时关系型数据库的一个重要功能。主要的目的是保证数据的完整性,也可是为数据的正确性(数据本身是否正确,关联关系是否真确)。

2024-11-27 16:27:36 802 31

原创 MYSQL表的增删改查(下)

首先我们可以先看一下哪三位同学的总成绩为倒数前三,为了方便比较,这里把总分为null的给省略了,故只查询到10行。注意:update操作时,如果不加where条件,修改的将是整张表的所有记录,是非常危险的操作。例如,还是上面的exam表,要把 孙悟空同学的成绩删去,按照习惯,我们先把表全列查询一下,从结果可以看到,查询的行数从11行变成了9行,并且删除后的表中没有孙悟空同学。这里其实和前面的多列查询有些相似,是把set后面的一个语句换成多个。例如,把宋公明的语文成绩改为60,数学成绩改为77。

2024-11-26 21:15:09 1726 18

原创 MYSQL 表的增删改查(上)

现在将student表换为 exam表,对exam表进行全列查询,这个表可以自己创建一份,然后通过新增数据来实现。可以看到,其中有11行,并且其中有两个98和80,这时候我们可以通过去重查询去除其中一个98和80。11行,因为查询的id列并没有重复的内容,只有math里面有重复内容是无法进行去重的。我们可以通过 指定查询的列 来实现指定列查询,实际上就是把 * 换成想要查询的列。像student表中,就有id,name两列,那么我们可以选择只插入其中一列。可以看到这次查询的结果是有9行,并且没有重复的数。

2024-11-26 09:16:32 1589 14

原创 MYSQL数据类型

如果要定义实体的属性,就要为属性命名并指定合适的数据类型。SQL中规定了用于描述属性的数据类型。

2024-11-19 09:41:56 729 38

原创 Java:Map和Set练习

关于Java中set和map方法的练习

2024-10-30 20:19:47 5968 72

原创 Java:关于哈希表

Java中关于哈希表概念,冲突及解决方法

2024-10-24 22:42:38 5462 56

原创 Java实现八种排序

Java实现八种排序

2024-10-15 09:23:24 2279 67

原创 Java:选择排序

Java中实现选择排序

2024-09-28 22:14:04 5719 102

原创 Java:插入排序

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳 定的;直接插入排序是稳定的,由上面图片能看到它是具有稳定性的,但如果是代码部分的 arr[j] > tmp 改为:arr[j] >= tmp,以上面的2a和2b为例,它们的顺序就会发生变化。所谓的排序,就是使一串记录,按照某个或某些关键字的大小,递增或递减的排列起来的操作。

2024-09-28 15:39:21 4669 67

原创 Java刷题:最小k个数

Java通过小根堆/大根堆实现最小k个数

2024-09-27 09:30:58 2749 64

原创 优先级队列(堆)

优先级队列(堆)

2024-09-20 23:04:16 1588 97

原创 二叉树(下)

关于二叉树的一些力扣题目

2024-09-20 08:51:54 1008 45

原创 二叉树(中)

二叉树的基本操作

2024-09-11 18:57:57 1225 67

原创 二叉树(上)

主要介绍了树和二叉树的概念方面的大致内容,以及实现二叉树的创建和三种遍历方式。

2024-09-11 11:13:16 1478 54

原创 【数据结构】栈和队列相互实现

数据结构:Java中队列和栈的相互实现

2024-08-28 18:50:58 2349 75

原创 【数据结构】队列(Queue)

数组,双链表实现队列,附完整代码

2024-08-28 10:54:10 1230 36

原创 【数据结构】栈(stack)

数组、双链表实现栈,附完整代码

2024-08-24 18:14:40 1063 41

原创 我的创作纪念日

来到C站也有256天了,虽然其间也摆烂过,但想来也是有收获的,毕竟每一次经历都可以看作是一次新的体验。

2024-08-21 22:46:21 655 13

原创 【数据结构】Java实现链表

Java实现数据结构 单链表,附完整代码

2024-08-16 16:11:39 1126 22

原创 Java:实现杨辉三角

Java:实现杨辉三角,附完整代码

2024-08-10 19:37:00 1328 18

原创 Java刷题:轮转数组

Java中轮转数组,附完整代码

2024-08-07 09:51:24 555 15

原创 【数据结构】Java实现顺序表,附完整代码

Java实现顺序表,附完整代码

2024-08-04 20:41:07 1492 13

原创 初步了解泛型

泛型的初步了解

2024-08-01 21:25:45 489 14

原创 Java刷题: 丑数判断

Java刷题:判断丑数。附完整代码

2024-07-30 20:41:10 603 13

原创 Java刷题:移除数组中与k值相等的元素

移除数组中与k值相等的元素,附完整代码

2024-07-23 13:13:11 522 15

Java实现:图书管理系统,附完整代码

Java实现:图书管理系统,附完整代码

2024-09-19

Java实现:图书管理系统,附完整代码

Java实现:图书管理系统,附完整代码

2024-09-19

空空如也

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

TA关注的人

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