自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用Vue3集成Element-Plus快速搭建一个管理系统的页面框架

Element-Plus 是一套前端 UI 框架,非常适合前端基础比较差的同学,可以通过它快速实现精美的页面样式。

2025-08-14 19:57:11 2181

原创 Mybatis实现页面增删改查

本文介绍了基于Vue和Element Plus实现用户管理系统的CRUD功能。主要内容包括:1)通过axios实现前后端数据交互;2)使用el-dialog和el-form组件实现新增/修改表单;3)采用MyBatis动态SQL实现数据持久化;4)实现单条删除、批量删除功能,并使用ElMessageBox进行删除确认;5)通过分页组件和条件查询优化数据展示。系统实现了用户信息的增删改查完整流程,包含表单验证、日期格式化等细节处理,展示了Element Plus组件库与Vue的组合应用。

2025-08-14 19:33:29 526

原创 Mybatis实现分页查询和搜索

本文介绍了Vue+SpringBoot项目中axios请求的配置与分页查询实现。主要内容包括:1)配置axios请求并解决跨域问题;2)封装统一请求工具request.js;3)实现后端分页查询,包括PageHelper配置、Service层分页逻辑和Controller接口;4)前端表格展示与分页组件实现;5)添加搜索功能,包括前端搜索框、参数传递和后端条件查询。文章提供了完整的代码示例,涵盖了从前后端交互到分页查询的完整流程,适合Vue+SpringBoot开发者参考实现数据分页和条件查询功能。

2025-08-14 19:22:02 376

原创 SpringJDBC

Spring JDBC是Spring所提供的持久层技术,负责数据库资源和错误处理,降低JDBC API的使用难度,以一种更简洁,更直接的方式使用JDBC API,大大简化了开发人员对数据库的操作。JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。JdbcTemplate虽然简单,功能却非常强大。

2025-08-07 18:11:19 265

原创 SpringAOP

首先我们来看一下登录的原理如上图所示这是一个基本的登录原理图,但是如果我们想要在这个登录之上添加一些新的功能,比如权限校验那么我们能想到的就有两种方法:①:通过对源代码的修改实现②:不通过修改源代码方式添加新的功能 (AOP)

2025-08-07 18:05:04 810

原创 Spring类型

1. Spring框架的概述Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE.Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。

2025-08-07 01:01:21 778

原创 Mybatis的事务和缓存

1.什么是缓存存储在内存当中的数据将用户常使用的数据存放在缓存(内存)当中,用户查询数据就不用从磁盘(关系型数据库文件)当中查询,从缓存当中查询,从而提高查询效率,解决了高并发系统的性能问题2.为什么使用缓存减少和数据库的交互次数,减少系统开销,提高系统效率3.什么样的数据能使用缓存经常查询并且不常改变的数据。

2025-08-05 17:59:55 911

原创 Java中的代理

核心结论:静态代理是Java代理模式的一种实现,指在编译期就已明确代理类的代码,且代理类与目标类实现相同接口,通过显式调用目标类方法,在其前后嵌入增强逻辑,从而实现对目标类的功能扩展。静态代理的关键特征是什么?- 编译期确定:代理类的源码需手动编写,与目标类一同编译为class文件,运行前代理类就已存在。- 接口依赖:代理类和目标类必须实现同一个业务接口,确保代理类可替代目标类对外提供服务(遵循里氏替换原则)。

2025-07-29 14:07:30 760

原创 JAVA中的反射

在Java中,反射(Reflection)是指程序在运行时能够获取自身信息,并动态操作类或对象的机制。简单来说,就是让代码“看透”自身的结构,比如类的属性、方法、构造器等,并能在运行中灵活调用它们,无需在编译时就确定具体操作。* 反射式获取类信息的能力*为什么需要反射?反射打破了Java的编译时类型检查限制,让程序更灵活。比如开发框架(如Spring的IOC容器)需要动态创建对象、调用方法,此时无法在编译期确定具体类,反射就成了核心工具。反射的核心操作。

2025-07-27 21:09:02 1146

原创 Java值传递和构造函数

输出null 42 42首先他要输出two.x的值,而byte x并没有设置值,所以为null;然后她以上一个创建的two为模板,只不过调用了一个fix创建了two2,此时two调用了fix方法将地址改为了tt,x的值改为了42,而two2也一样,所以是42 42。

2025-07-22 22:33:03 1117

原创 Java中的包装类

Java中的包装类是为基本数据类型提供的对应的类类型,用于将基本类型“包装”成对象,以满足面向对象编程中对对象操作的需求(如集合存储、泛型使用等)。基本类型与对应包装类基本数据类型 包装类包装类的主要作用1. 类型转换:通过包装类的方法实现基本类型与字符串的转换。例: int num = Integer.parseInt("123");(字符串转int);(int转字符串)。

2025-07-22 21:43:18 1201

原创 Java中的泛型数据

泛型是编程语言中一种参数化类型的机制,允许在定义类、接口或方法时使用未知的类型参数,在使用时再指定具体类型,从而实现代码的复用和类型安全。核心作用- 代码复用:无需为不同数据类型重复编写相似逻辑,比如一个泛型集合类可存储整数、字符串等各种类型数据。- 类型安全:编译时检查数据类型,避免运行时出现类型转换错误。例如,指定为 List<String> 的集合,编译时就会阻止添加整数。基本使用形式。

2025-07-22 21:07:27 895

原创 Java字符串

1.首先比较的是两个字符串的地址是否相同,如果相同返回true.2.如果字符串地址不相同,那么首先会判断要比较的是否属于String类型,如果是,然后在比较里边的内容是否相同。animal是引用数据类型,equals是查地址的下面的等号也是查地址没区别。

2025-07-20 17:15:29 922

原创 算法中的多态

在Java中,多态是面向对象编程的三大特性之一(另外两个是封装和继承),指的是同一个方法调用可以根据对象的实际类型,表现出不同的行为。简单来说,就是当父类引用指向子类对象时,调用父类中定义的方法,实际执行的是子类重写后的方法。多态的实现条件:1. 存在继承关系(子类继承父类);​2. 子类重写父类的方法;​3. 父类引用指向子类对象(如: 父类类型 变量名 = new 子类类型();

2025-07-20 15:57:57 385

原创 final关键字

全局变量是在所有对象中表达内存图能看到,如上面小长方形中的的age name;局部变量在内存图中没有表达空间 是在方法内部表达,不能用static。当final定义类或对象以及方法时,可以对类对象方法里的值进行修改,只要大的类对象方法名字不变就可以。

2025-07-20 11:57:27 140

原创 static,this关键字

不在一个类调用如图下:

2025-07-19 18:11:56 765

原创 对象间的继承

我们来看一段代码,首先创建了一个Cat类,而Cat类之中有引用了Animal类,此时我们把Animal称为父类,Cat称为子类,内存图例如下那么,父类可以使用子类的代码吗?

2025-07-18 21:15:58 250

原创 Java内存图,类与对象的关系

Java程序运行流程包括编写源代码、编译为字节码、类加载和执行三个阶段。JVM运行时数据区主要分为堆(存储对象)、栈(方法调用)和方法区(类元数据)。类作为对象模板,通过new创建实例存储在堆中。方法的调用过程通过栈帧的入栈出栈实现,形成线程执行流程。对象是堆中存储数据的结构,每个对象根据类模板创建,具有相同形式但独立存在。

2025-07-17 20:20:27 839

原创 位运算的应用

按位非(~):对每个位取反,0变1,1变0(结果会涉及补码,需注意符号位)。- 右移(>>):将二进制位整体右移指定位数,左边补符号位(正数补0,负数补1)。例如: 6 >> 1 即 0110 >> 1 = 0011 (结果为3)。- 无符号右移(>>>):将二进制位整体右移指定位数,左边补0(忽略符号位,结果始终为非负)。- 按位与(&):两个对应位都为1时,结果位才为1,否则为0。- 按位或(|):两个对应位只要有一个为1,结果位就为1。- 左移(<<):将二进制位整体左移指定位数,右边补0。

2025-07-16 13:54:14 351

原创 数据在计算机中的存储

1,1111111(反码) -------------------> 符号位不变,其余位按位取反 ------------> 1,0000000(源码) ======> -0 x。1,00000000------------->舍弃最高位以后------->00000000(补码)------------------> 0。+10(十进制) ------->数值的最高位来表示正负 0表示整数 1表示负数。---------------------------以上数据表示形式长度不一致。

2025-07-16 13:36:15 847

原创 B树与B+树

B+树和B树的插入操作需严格按给定顺序进行,不能预先排序。每个子节点最多容纳四个数值,当插入第五个数值时,需将中间值提升至父节点,以维持树的平衡。这一过程确保了B+树和B树在动态数据管理中的高效性和稳定性。

2025-05-18 22:41:25 430

原创 前端中的弹性盒子以及布局元素

弹性盒子(Flexbox)是一种用于创建灵活且自适应布局的CSS技术,能够自动调整子元素的大小和位置,以适应不同屏幕尺寸和设备类型。它通过主轴和交叉轴来控制子元素的排列和对齐,常用属性包括display: flex、flex-direction、justify-content和align-items等。弹性盒子布局适用于实现水平或垂直居中、响应式布局等功能。此外,HTML中的块级元素(如<div>、<p>)、行内元素(如<span>、<a>)、表格元素(如<table>)以及语义化元素(如<header>、

2025-05-18 22:12:10 711

原创 八大排序之希尔排序

希尔排序的实现方法及原理

2025-05-14 22:06:22 199

原创 树的增删改查

树的先序遍历:A B C若只看结果可以采用列举法,先左后右的进行一个一个输出。首先我们要给这个树构建一个打印输出方法,并定义几个指针来年遍历树。然后我们来输出树的主干方法。树的种类主要为二叉树。1·二叉树的存储结构。树的中序遍历:BAC。树的尾序遍历:BCA。//要插入的节点值小。

2025-04-28 23:34:04 302

原创 数组的插入查找与删除

若大于中间元素,则在数组后半部分继续查找,不断缩小查找范围,直到找到或确定不存在。- 原理:在数组中指定位置插入元素时,需要将插入位置及之后的元素依次向后移动一位,为新元素腾出空间,然后将新元素放入指定位置。- 原理:找到要删除元素的位置后,将该位置之后的元素依次向前移动一位,覆盖要删除的元素,最后数组长度减1。如果是固定长度数组,可能需创建新的、长度减1的数组来存储删除元素后的内容。- 原理:从数组的第一个元素开始,逐个与目标元素进行比较,直到找到目标元素或遍历完整个数组。- 二分查找(要求数组有序)

2025-04-28 00:06:37 352

原创 八大排序之基数排序

它的时间复杂度在最好、最坏和平均情况下都是 O(d(n + b)) ,其中 d 是数字的最大位数,n 是待排序元素的个数,b 是基数(比如十进制下基数为10 ) ,空间复杂度为 O(n + b)。- 分配:遍历待排序数组,根据当前位(从最低位开始,如个位、十位、百位等)数字的值,将元素分配到对应的桶(也叫箱子,共有基数个,如十进制有10个桶,编号0 - 9 )中。1. 确定基数:对于整数排序,通常使用十进制,基数 b = 10 ,意味着每一位数字的取值范围是0 - 9。一·基数排序基本概念。

2025-04-27 23:53:16 888

原创 八大排序之堆排序

从堆顶开始,将堆顶元素与左右子节点中较大的那个交换,若交换后该节点仍不满足大顶堆性质,继续向下调整,直到整个堆再次满足大顶堆性质。此时,整个堆的根节点就是最大元素。从最后一个非叶子节点开始调整,依次向前处理每个非叶子节点,通过比较和交换操作,使每个子树都满足大顶堆的性质。3. 重复步骤2:不断重复上述交换和调整操作,每次都将当前堆中的最大元素放到已排序部分的开头,逐步完成整个序列的排序。- 将堆顶元素(即最大元素)与堆的最后一个元素交换位置,此时最大元素就放到了数组末尾(对于升序排序)。

2025-04-27 23:48:39 277

原创 八大排序之冒泡排序

时间复杂度:最好情况下,数组已经有序,只需比较 n - 1 次,时间复杂度为O(n)。最坏情况下,数组完全逆序,需要比较\frac{n(n - 1)}{2}次,时间复杂度为O(n^{2})。- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。- 稳定性:在比较和交换元素时,相等的元素不会交换位置,所以冒泡排序是稳定的排序算法。- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。- 针对所有的元素重复以上的步骤,除了最后一个。

2025-04-21 21:12:37 272

原创 二叉树之红黑树

红色节点限制:如果节点是红色的,则它的子节点必须是黑色的,不会有连续的红色节点。- 黑色节点数量:从根节点到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点。- 根节点与叶节点:根节点总是黑色的,每个叶子节点(NIL节点)也是黑色的。节点颜色属性:每个节点非红即黑。

2025-04-21 21:05:46 159

原创 八大排序之快速排序

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。(2)必须先走j再走i,如下图先j走在2相遇是对的,而先i走在5相遇不对。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。(1)·如果14和18行不写>=号的话,左边的i指针就会卡死在4走不了。如果第一个比第二个大,就交换它们的位置。针对所有的元素重复以上的步骤,除了最后一个。

2025-04-21 20:49:32 308

原创 前端基础

文档结构: <!- 定位属性: position (定位方式,如 static 、 relative 、 absolute 、 fixed )、 top 、 right 、 bottom 、 left。- 盒模型属性: width (宽度)、 height (高度)、 padding (内边距)、 margin (外边距)、 border (边框)。- 基本选择器:元素选择器(如 div )、类选择器( .classname )、ID选择器( #idname )、通配符选择器( * )。

2025-04-12 19:46:13 338

原创 css选择器

* nth-of-type(n) nth-last-of-type(n)倒着数 某类型下的第n个。/* 7、兄弟选择器 选择器1~选择器2 选择器2为*表示找所有弟弟*/div[id*=xx]有id属性且id属性值包含xx的div元素。/* 8、选择器组合 选择器1,选择器2,选择器3 或 *//* 6、子选择器 选择器1>选择器2 强调必须父子 *//* 2、属性选择器 根据属性做选择 [属性名] *//* 5、包含选择器 选择器1 选择器2 强调包含*//* 1、元素选择器 根据元素名字做选择 */

2025-04-12 19:20:02 785 1

空空如也

空空如也

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

TA关注的人

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