自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

巧克力布丁的博客

love and share

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

原创 算法——查找

优点:无需判断是否越界,效率更高用来描述折半查找过程的二叉树,称为判定树树中每个圆形结点表示一个记录,结点中的值为该记录的关键字值;树中最下面的叶结点都是方形的,它表示查找不成功的情况。从判定树可以看出,查找成功时的查找长度为从根结点到目的结点的路径上的结点数,而查找不成功时的查找长度为从根结点到对应失败结点的父结点的路径上的结点数;每个结点值均大于其左子结点值,且均小于于其右子结点值每次调整的对象都是最小不平衡子树,即以插入路径上离插入结点最近的平衡因子的绝对值大于1的结点作为根的子树。

2022-09-01 20:07:49 221

原创 数据结构——非线性结构(图)

如果本身就是连通图,则本身就是其连通分量,而非连通图的各个连通图作为其组成部分均为其连通分量强连通图:任意顶点出发可以到达其余任意节点假设一个图有n个节点,如果边数小于n-1,那么此图必是非连通图一个图有n个顶点,并且有大于n-1条边,则此图一定有环顶点不分大小、主次,所以用一个一维数组存储图中顶点的信息边或弧由于是顶点之间的关系,用一个二维数组存储图中边的信息(这个二维数组称为邻接矩阵)性质1:是有向图的一种链式存储结构:将邻接表和逆邻接表整合在一起邻接多重表是无向图的另一种链式存储结构。........

2022-08-26 20:47:44 565

原创 数据结构——非线性结构(树与二叉树)

1)有且只有一个称为根的节点2)有若干个互不相交的子树,这些子树本身也是一棵树(递归定义)1)树是由节点和边组成2)每个节点只有一个父节点但可以有多个子节点3)但有一个节点除外,该节点没有父节点,此节点称为根节点(n个节点的树中有n-1条边)后序遍历左子树后序遍历右子树再访问根节点递归遍历左右子树顺序是固定的,只是访问根的顺序不同。时间复杂度O(n):因为不管采用哪种遍历算法,每个节点都访问一次。

2022-08-20 19:46:11 392

原创 C语言开发环境搭建:VSCode+GCC

VSCode(全称:Visual Studio Code)是一款由微软开发且跨平台的免费源代码编辑器。该软件支持语法高亮、代码自动补全(又称 IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和 Git 版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装扩展以拓展软件功能。VS Code 使用 Monaco Editor 作为其底层的代码编辑器。VSCode官网https://code.visualstudio.com/Linux系统自带gcc

2022-07-09 23:12:06 1152

原创 Vmware安装CentOS7.6

等待系统检测都设置为标准分区关闭该选项centOS 7网络配置,解决不能联网、ping不通外网、主机的问题虚拟机一般设置为NAT模式设置虚拟机网络配置信息由于我以前配置过虚拟机的信息,一定要先还原默认设置虚拟机我们设置为nat模式,这里我们需要记住NAT设置的和DHCP设计的参数。此时win11电脑里面会有查看VMnet8的MAC地址:打开虚拟机终端-输入ip addr 查看ensXX下的MAC地址我们要找到我们虚拟机设置的那个对应名字的mac地址修改配置文件终端页面,切换到r

2022-06-17 10:42:21 277

原创 WebAPIs——BOM

文章目录一. BOM 概述1. 什么是 BOM2. BOM 的构成二. window 对象的常见事件1. 窗口加载事件2. 调整窗口大小事件三. 定时器1. 两种定时器2. setTimeout() 定时器3. 停止 setTimeout() 定时器4. setInterval() 定时器5. 停止 setInterval() 定时器6. this四. JS 执行机制1. JS 是单线程2. 同步和异步2.1 同步2.2 异步2.3 同步任务2.4 异步任务3. JS 执行机制五. location 对象1

2022-03-19 11:13:13 63

原创 WebAPIs——事件高级

文章目录一. 注册事件(绑定事件)1. 注册事件概述2. addEventListener 事件监听方式3. attachEvent 事件监听方式4. 注册事件兼容性解决方案二. 删除事件(解绑事件)1. 删除事件的方式2. 删除事件兼容性解决方案三. DOM事件流四. 事件对象1. 什么是事件对象2. 事件对象的使用语法3. 事件对象的兼容性方案4. 事件对象的常见属性和方法五. 阻止事件冒泡1. 阻止事件冒泡的两种方式2. 阻止事件冒泡的兼容性解决方案六. 事件委托(代理、委派)1. 事件委托2. 事件

2022-03-19 10:39:09 188

原创 WebAPIs——DOM

文章目录一. DOM 简介1. 什么是 DOM2. DOM 树二. 获取元素1. 如何获取页面元素2. 根据 ID 获取3. 根据标签名获取4. 通过 HTML5 新增的方法获取5. 获取特殊元素(body,html)三. 事件基础1. 事件概述2. 事件三要素3. 执行事件的步骤4. 常见的鼠标事件四. 操作元素1. 改变元素内容2. 常用元素的属性操作3. 表单元素的属性操作4. 样式属性操作5. 排他思想6. 自定义属性的操作6.1 获取属性值6.2 设置属性值6.3 移除属性7. H5自定义属性7

2022-03-19 10:22:12 114

原创 JavaScript——简单类型与复杂类型

文章目录一. 简单类型与复杂类型二. 堆和栈三. 简单类型的内存分配四. 复杂类型的内存分配五. 简单类型传参六. 复杂类型传参一. 简单类型与复杂类型简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型string ,number,boolean,undefined,null引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型,通过 new 关键字创建的对象(系统对象、自定义

2022-03-18 22:45:48 45

原创 JavaScript——对象

文章目录一. 对象1. 什么是对象2. 为什么需要对象二. 创建对象的三种方式1. 利用字面量创建对象2. 利用 new Object 创建对象3. 利用构造函数创建对象4. 构造函数和对象三. new 关键字四. 遍历对象属性五. 内置对象1. 概述2. 查文档3. Math 对象3.1 Math 概述3.2 随机数方法 random()4. 日期对象4.1 Date 概述4.2 Date()方法的使用4.3 日期格式化4.4 获取日期的总的毫秒形式5. 数组对象5.1 数组对象的创建5.2 检测是否为数

2022-03-18 22:41:19 689

原创 JavaScript——数组

文章目录一. 数组的概念二. 创建数组1. 数组的创建方式2. 利用 new 创建数组3. 利用数组字面量创建数组4. 数组元素的类型三. 获取数组中的元素1. 数组的索引四. 遍历数组1. 数组的长度五. 数组中新增元素1. 通过修改 length 长度新增数组元素2. 通过修改数组索引新增数组元素一. 数组的概念数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的优雅方式。二. 创建数组1. 数组的创建方式2. 利用 n

2022-03-18 21:43:51 46

原创 JavaScript——函数

文章目录一. 函数的概念二. 函数的使用2.1 声明函数2.2 调用函数2.3 函数的封装三. 函数的参数1. 形参和实参2. 函数参数的传递过程3. 函数形参和实参个数不匹配问题四. 函数的返回值1. return 语句2. return 终止函数3. return 的返回值4. 函数没有 return 返回 undefine5. break ,continue ,return 的区别五. arguments的使用六. 函数的两种声明方式1. 自定义函数方式(命名函数)2. 函数表达式方式(匿名函数)一

2022-03-18 21:30:43 52

原创 JavaScript——流程控制

文章目录一. 流程控制二. 顺序流程控制三. 分支流程控制1. 分支结构2. if 语句2.1 语法结构2.2 执行流程3. if else语句(双分支语句)3.1 语法结构3.2 执行流程4. if else if 语句(多分支语句)4.1 语法结构4.2 执行流程5. 三元表达式5.1 语法结构5.2 执行思路6. switch 语句6.1 语法结构6.2 switch 语句和 if else if 语句的区别四. 循环流程控制1. 循环1.1 循环目的1.2 JS 中的循环2. for 循环2.1 语

2022-03-18 13:02:24 135

原创 JavaScript——语法

文章目录一. 变量1. 变量概述1.1 什么是变量1.2 变量在内存中的存储2. 变量的使用2.1 声明变量2.2 赋值2.3 变量的初始化3. 变量语法扩展3.1 更新变量3.2 同时声明多个变量3.3 声明变量特殊情况4. 变量命名规范二. 数据类型1. 数据类型简介1.1 为什么需要数据类型1.2 变量的数据类型1.3 数据类型的分类2. 简单数据类型(基本数据类型)2.1 数字型 Number2.2 字符串型 String2.3 布尔型 Boolean2.4 Undefined 和 Null3. 获

2022-03-18 11:04:50 40

原创 JavaScript——基础

文章目录一. 计算机编程基础1. 编程语言1.1 编程1.2 计算机语言1.3 编程语言1.4 翻译器1.5 编程语言和标记语言区别2. 计算机组成2.1 数据存储2.2 数据存储单2.3 程序运行二. 初识JavaScript1. JavaScript 是什么2. JavaScript 的作用3. HTML/CSS/JS 的关系4. 浏览器执行 JS 简介5. JS 的组成5.1 ECMAScript5.2 DOM — 文档对象模型5.3 BOM — 浏览器对象模型6. JS书写的三种方式6.1 行内式

2022-03-18 10:14:21 583

原创 SpringBoot——SSMP整合案例

文章目录一. 案例实现方案分析二. 模块创建1. 导入依赖2. 配置yml3. 实体类开发4. 数据层开发4.1 配置数据源与MyBatisPlus对应的基础配置(id生成策略使用数据库自增策略)4.2 继承BaseMapper并指定泛型4.3 数据层开发:分页功能4.4 数据层开发:条件查询功能4.5 进行测试2. 业务层开发2.1 接口定义2.2 实现类定义2.3 进行测试2.4 业务层开发—快速开发(使用IService)1. 接口定义2. 实现类定义3. 测试类定义3. 表现层开发3.1 功能测试3

2022-03-17 19:06:22 558 1

原创 SpringBoot——整合第三方技术

文章目录一. 整合JUnit1. 测试类如果存在于引导类所在包或子包中无需指定引导类2. 测试类如果不存在于引导类所在的包或子包中需要通过classes二. 整合MyBatis1. mybatis需要两个配置2. SpringBoot整合MyBatis步骤2.1 创建新模块,选择Spring初始化,并配置模块相关基础信息2.2 设置数据源参数2.3 编写实体类2.4 定义数据层接口与映射配置2.5 测试类中注入dao接口,测试功能三. 整合MyBatis-Plus1. MyBatis-Plus与MyBati

2022-03-17 12:20:02 560

原创 SpringBoot——springboot配置

文章目录一. 属性配置1. 修改服务器端口2. 修改配置3. SpringBoot内置属性查询二. 配置文件分类三. yaml文件四. yaml数据读取一. 属性配置1. 修改服务器端口2. 修改配置# 服务器端口配置server.port=80# 修改banner# spring.main.banner-mode=off 关闭# spring.banner.image.location=logo.png # 控制日志logging.level.root=info# loggi

2022-03-17 10:49:49 532

原创 SpringBoot——REST风格

文章目录一. REST风格1. REST简介二. 入门案例1. 设定http请求动作(动词)2. 设定请求参数(路径变量)3. 总结4. 三种参数的区别三. RESTful快速开发一. REST风格1. REST简介二. 入门案例1. 设定http请求动作(动词)2. 设定请求参数(路径变量)3. 总结4. 三种参数的区别三. RESTful快速开发...

2022-03-16 21:27:43 566

原创 SpringBoot——springboot基础

文章目录一. 概述1. SpringBoot入门程序1.1 创建新模块,选择Spring Initializr,并配置模块相关基础信息1.2 选择当前模块需要使用的技术集1.3 开发控制器类1.4 运行自动生成的Application类1.5 最简SpringBoot程序所包含的基础文件2. Spring程序与SpringBoot程序对比3. 基于阿里云创建项目4. 隐藏指定文件/文件夹二. 入门案例解析1. parent2. starter3. 引导类4. 内嵌tomcat一. 概述SpringBoo

2022-03-16 20:19:21 191

原创 MyBatis-Plus工具

文章目录一. 代码生成器1. 引入依赖2. 快速生成二. 多数据源1. 创建数据库及表2. 引入依赖3. 配置多数据源4. 创建用户service5. 创建商品service6. 测试三. MyBatisX插件一. 代码生成器1. 引入依赖2. 快速生成public class FastAutoGeneratorTest { public static void main(String[] args) { FastAutoGenerator.create("jdbc:my

2022-03-15 22:23:10 1134

原创 MyBatis-Plus通用枚举

文章目录一. 数据库表添加字段sex二. 创建通用枚举类型三. 配置扫描通用枚举四. 测试一. 数据库表添加字段sex表中的有些字段值是固定的,例如性别(男或女),此时我们可以使用MyBatis-Plus的通用枚举来实现二. 创建通用枚举类型三. 配置扫描通用枚举四. 测试...

2022-03-15 22:15:05 974 1

原创 MyBatis-Plus插件

文章目录一. 分页插件1. 添加配置类2. 测试二. xml自定义分页1. UserMapper中定义接口方法2. UserMapper.xml中编写SQL3. 测试三. 乐观锁1. 场景2. 乐观锁与悲观锁3. 模拟修改冲突3.1 数据库中增加商品表3.2 添加实体3.3 添加mapper3.4 测试3.5 乐观锁实现流程3.6 Mybatis-Plus实现乐观锁一. 分页插件MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能1. 添加配置类2. 测试二. xml自定

2022-03-15 22:11:44 1392

原创 MyBatis-Plus条件构造器和常用接口

文章目录一. wapper介绍二. QueryWrapper1. 组装查询条件2. 组装排序条件3. 组装删除条件4. 条件的优先级5. 组装select子句6. 实现子查询三. UpdateWrapper四. condition1. 思路一2. 思路二五. LambdaQueryWrapper六. LambdaUpdateWrapper一. wapper介绍二. QueryWrapper1. 组装查询条件2. 组装排序条件3. 组装删除条件4. 条件的优先级5. 组装selec

2022-03-15 22:03:01 374

原创 MyBatis-Plus常用注解

文章目录一. @TableName1. 问题2. 通过@TableName解决问题3. 通过全局配置解决问题二. @TableId1. 问题2. 通过@TableId解决问题3. @TableId的value属性4. @TableId的type属性5. 雪花算法5.1 背景5.2 数据库分表5.3 垂直分表5.4 水平分表三. @TableField1. 情况12. 情况2四. @TableLogic1. 逻辑删除2. 实现逻辑删除一. @TableName经过以上的测试,在使用MyBatis-Plu

2022-03-15 21:53:08 344

原创 MyBatis-Plus基本CRUD

文章目录一. BaseMapper二. 插入三. 删除1. 通过id删除记录2. 通过id批量删除记录3. 通过map条件删除记录四. 修改五. 查询1. 根据id查询用户信息2. 根据多个id查询多个用户信息3. 通过map条件查询用户信息4. 查询所有数据六. 通用Service1. IService2. 创建Service接口和实现类3. 测试查询记录数4. 测试批量插入一. BaseMapperMyBatis-Plus中的基本CRUD在内置的BaseMapper中都已得到了实现,我们可以直接使用

2022-03-15 21:31:25 560

原创 MyBatis-Plus简介

文章目录一. 简介二. 特性三. 支持数据库四. 框架结构五. 入门案例1. 创建数据库及表2. 创建Spring Boot工程3. 引入依赖4. 编写代码4.1 配置application.yml4.2 启动类4.3 添加实体4.4 添加mapper4.5 测试一. 简介MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。mybatis-plus https://baomidou.com/pages/2411

2022-03-15 20:45:47 7157 1

原创 SSM——SSM整合

文章目录一. 准备工作1. 原始方式整合2. 创建Maven工程3. 导入Maven坐标二. 编写实体类三. 编写Mapper接口四. 编写Service接口和实现类五. 编写Controller六. 编写添加页面七. 编写列表页面八. 编写相应配置文件1. MyBatis核心文件2. MyBatis映射文件3. spring核心配置文件4. 配置spring-mvc核心配置文件5. 配置web.xml一. 准备工作1. 原始方式整合create database ssm;create table

2022-03-15 15:07:08 632

原创 SSM——Spring的事务控制

文章目录一. 编程式事务控制的三大对象1. PlatformTransactionManager2. TransactionDefinition2.1 1. 事务隔离级别2.2 事务传播行为3. TransactionStatus二. 基于 XML 的声明式事务控制1. 什么是声明式事务控制2. 声明式事务处理的作用3. 声明式事务控制的实现3.1 引入tx命名空间3.2 配置事务增强3.3 配置事务 AOP 织入3.4 测试事务控制转账业务代码4. 切点方法的事务参数的配置三. 基于注解的声明式事务控制

2022-03-14 14:38:23 168

原创 SSM——SpringMVC异常处理机制

文章目录一. 异常处理的思路二. 异常处理两种方式1. 简单异常处理器SimpleMappingExceptionResolver2. 自定义异常处理步骤2.1 创建异常处理器类实现HandlerExceptionResolver2.2 配置异常处理器2.3 编写异常页面2.4 测试异常跳转一. 异常处理的思路二. 异常处理两种方式使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver实现Spring的异常处理接口HandlerException

2022-03-14 09:52:16 61

原创 SSM——SpringMVC拦截器

文章目录一. 拦截器(interceptor)的作用二. 拦截器和过滤器区别三. 拦截器是快速入门1. 创建拦截器类实现HandlerInterceptor接口2. 配置拦截器3. 测试拦截器的拦截效果(编写目标方法)4. 测试拦截器的拦截效果(访问网址)四. 多拦截器操作五. 拦截器方法说明六. 案例-用户登录权限控制一. 拦截器(interceptor)的作用Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。将拦截器按一定的顺序

2022-03-14 09:26:13 213

原创 SSM——Spring练习

文章目录一. Spring环境搭建步骤二. 用户和角色的关系三. 角色列表的展示效果1. 角色列表的展示步骤分析四. 角色添加的效果1. 角色添加的步骤分析五. 用户列表的展示效果1. 用户列表的展示步骤分析六. 用户添加的效果1. 用户添加的步骤分析七. 删除用户的效果1. 删除用户的步骤分析一. Spring环境搭建步骤web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp

2022-03-13 22:50:15 701

原创 SSM——Spring中JdbcTemplate基本使用

文章目录一. JdbcTemplate概述二. JdbcTemplate开发步骤1. 导入坐标2. 创建accout表和Accout实体3. 创建JdbcTemplate对象、执行数据库操作三. Spring产生JdbcTemplate对象1. 从容器中获得JdbcTemplate进行添加操作2. 修改操作3. 删除和查询全部操作4. 查询单个数据操作操作一. JdbcTemplate概述它是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多

2022-03-12 22:42:15 83

原创 SSM——SpringMVC的请求和响应

文章目录一. SpringMVC的数据响应方式1. 页面跳转1.1 返回字符串形式1.2 返回ModelAndView对象1.3 向request域存储数据2. 回写数据2.1. 直接返回字符串2.2. 返回对象或集合二. SpringMVC 获得请求数据1. 获得请求参数1.1 获得基本类型参数1.2 获得POJO类型参数1.3 获得数组类型参数1.4 获得集合类型参数2. 请求数据乱码问题3. 参数绑定注解@requestParam4. 获得Restful风格的参数三. 自定义类型转换器1. 定义转换器

2022-03-10 21:49:32 457

原创 SSM——SpringMVC概述

文章目录一. Spring集成web环境1. ApplicationContext应用上下文获取方式2. Spring提供获取应用上下文的工具3. 导入Spring集成web的坐标4. 配置ContextLoaderListener监听器5. 通过工具获得应用上下文对象二. SpringMVC的简介1. SpringMVC概述2. SpringMVC快速入门2.1 导入Spring和SpringMVC的坐标和Servlet和Jsp的坐标2.2 在web.xml配置SpringMVC的核心控制器2.3 创建C

2022-03-10 17:10:43 231

原创 SSM——Spring面向切面编程AOP

文章目录一. Spring 的 AOP 简介1. 什么是 AOP2. AOP 的作用及其优势3. AOP 的底层实现3.1 JDK 的动态代理3.2 cglib 的动态代理4. AOP 相关概念5. AOP 开发明确的事项二. 基于 XML 的 AOP 开发1. 导入 AOP 相关坐标2. 创建目标接口和目标类(内部有切点)3. 创建切面类(内部有增强方法)4. 将目标类和切面类的对象创建权交给 spring5. 在 applicationContext.xml 中配置织入关系6. 测试代码三. 基于注解的

2022-03-10 16:41:30 111

原创 SSM——Spring注解开发

文章目录一. Spring原始注解二. Spring新注解一. Spring原始注解Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率。注意:使用注解进行开发时,需要在applicationContext.xml中配置组件扫描,作用是指定哪个包及其子包下的Bean需要进行扫描以便识别使用注解配置的类、字段和方法。<!--注解的组件扫描--><context:component-scan ba

2022-03-10 16:18:04 278

原创 SSM——Spring配置数据源

文章目录一. 数据源(连接池)的作用二. 数据源的开发步骤1. 数据源的手动创建1.1 导入c3p0和druid的坐标和mysql坐标1.2 创建C3P0连接池![在这里插入图片描述](https://img-blog.csdnimg.cn/d7da2e1e470a43d0a7e03f6539046111.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5ben5YWL5YqbY29kZQ==,size

2022-03-10 16:05:57 1179

原创 SSM——Spring概述

文章目录一. Spring简介1. Spring是什么2. Spring发展历程3. Spring的优势4. Spring的体系结构二. Spring程序开发步骤1. 导入Spring开发的基本包坐标2. 编写Dao接口和实现类3. 编写Service接口和实现类4. 创建Spring核心配置文件4.1 Bean标签基本配置5. 在Spring配置文件中配置userServiceImpl5.1 Bean实例化三种方式5.2 Bean的依赖注入分析5.3 Bean的依赖注入方式方式一:set方法注入方式二:

2022-03-10 15:13:01 37

原创 SSM——MyBatis注解开发

文章目录一. MyBatis的常用注解一. MyBatis的常用注解这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件了。我们先围绕一些基本的CRUD来学习,再学习复杂映射多表操作。...

2022-03-10 09:32:15 205 1

空空如也

空空如也

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

TA关注的人

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