自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot整合ssm——图书管理系统

在本机mysql中建立一个名为:ssm_db 数据库:数据库建表:tbl_book初始一下测试用的数据: 新建项目: 选择导入SpringWeb的起步依赖: 选择导入:Mysql和Mybatis的起步依赖: service :在类路径下的resources包新建application.yml文件: 在domain包下编写Book类,其属性与数据库中的book_tbl的属性一一对应,代码如下: 在dao包下编写BookDao类,其提供对数据库直接进行操作的方法,代码如下:

2025-01-20 17:21:36 889

原创 SpringBoot整合mybatis

在 com.example.domain 包下定义实体类 Book ,内容如下return id;在 com.example.dao 包下定义 BookDao 接口,内容如下@Mapper在 test/java 下定义包 com.example ,在该包下测试类,内容如下@Autowired@Test。

2025-01-19 15:03:35 446

原创 SpringBoot整合junit

在 com.example.service.impl 包写创建一个 BookServiceImpl 类,使其实现 BookService 接口,内容如下。在 test/java 下创建 com.example 包,在该包下创建测试类,将 BookService 注入到该测试类中。在 com.example.service 下创建 BookService 接口,内容如下。引导类所在包是 com.example。测试类所在包是 com.example。:这里的引导类所在包必须是测试类所在包及其子包。

2025-01-19 13:53:36 556

原创 SpringBoot多级配置文件

有这样的场景,我们开发完毕后需要测试人员进行测试,由于测试环境和开发环境的很多配置都不相同,所以测试人员在运 行我们的工程时需要临时修改很多配置,如下针对这种情况, SpringBoot 定义了配置文件不同的放置的位置;而放在不同位置的优先级时不同的。说明:级别越高优先级越高。

2025-01-18 21:49:19 563

原创 SpringBoot多环境配置

以后在工作中,对于开发环境、测试环境、生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配置,将环境的配置改为线上环境的。 来回的修改配置会很麻烦,而 SpringBoot 给开发者提供了多环境的快捷配置,需要切换环境时只需要改一个配置即可。不 同类型的配置文件多环境开发的配置都不相同,接下来对不同类型的配置文件进行说明。测试项目结构: 在 application.yml 中使用“ --- ”来

2025-01-17 22:11:27 1067

原创 yaml配置文件中数据的读取

SpringBoot 还提供了将配置文件中的数据封装到我们自定义的实体类对象中的方式。1将实体类 bean 的创建交给 Spring 管理。在类上添加@Component注解2使用注解表示加载配置文件在该注解中也可以使用prefix 属性指定只加载指定前缀的数据3在 BookController 中进行注入具体代码如下:Enterprise 实体类内容如下:@Componentreturn age;return tel;

2025-01-17 13:00:52 829

原创 yaml配置文件的语法格式

YAML(YAML Ain't Markup Language)是一种数据序列化语言,旨在以一种人类可读的方式来表示数据结构。

2025-01-17 11:52:01 363

原创 SpringBoot配置文件格式

以修改tomcat服务器端口为例:我们现在的端口是8080;

2025-01-16 21:29:21 233

原创 SpringBoot工程快速启动

以后我们和前端开发人员协同开发,而前端开发人员需要测试前端程序就需要后端开启服务器,这就受制于后端开发人员。为了摆脱这个受制,前端开发人员尝试着在自己电脑上安装 Tomcat 和 Idea ,在自己电脑上启动后端程序,这显然不现 实。我们后端可以将 SpringBoot 工程打成 jar 包,该 jar 包运行不依赖于 Tomcat 和 Idea 这些工具也可以正常运行,只是这个 jar 包在运行过程中连接和我们自己程序相同的 Mysql 数据库即可。

2025-01-15 21:17:48 485

原创 Spring官网构建Springboot工程

注意:基于Idea的 Spring Initializr 快速构建 SpringBoot 工程时需要联网。

2025-01-15 20:59:50 264

原创 SpringBoot程序快速入门

点击创建即可。

2025-01-15 20:46:41 265

原创 IDEA 内置的 Spring Initializr 创建 Spring Boot 新项目时无法使用JDK8?

是因为 Spring Boot 官方不再支持 Spring Boot 的 2.x 版本了,之后全力维护 3.x;不使用官方提供的 Spring Initializr 来初始化项目,可以使用阿里云提供的脚手架镜像(https://start.aliyun.com/),依旧可以继续使用JDK8。在 IDEA 里更改 Server URL 即可:https://start.aliyun.com/可以看到IDEA在创建Springboot项目时无法使用jdk8了。

2025-01-15 20:03:12 1306

原创 4.最佳归并树——优化多路归并

上回说到通过置换选择排序通过有限的内存工作空间初始化了更长的归并段,但是这些归并段并不是等长的,那么对这些归并段进行归并时的磁盘的读写次数是什么样的呢?假设现在有四个不等长的归并段:R1R2R3R4R525162随便两两进行二路归并,画出其归并树:我们计算一下其需要读写的次数是分别都是:6+8+14+16=44次;

2024-11-21 17:49:41 684

原创 3.置换选择排序-优化初始归并段

设初始待排文件为FI,初始归并段输出文件为FO,内存工作区为WA,FO和WA的初始状态为空,WA可容纳w个记录。6)重复3)~5),直至在WA中选不出新的MINIMAX记录为止,由此得到一个初始归并段,输出一个归并段的结束标志到FO中去。5)从WA中所有关键字比MINIMAX记录的关键字大的记录中选出最小关键字记录,作为新的MINIMAX记录。在有限的内存工作空间中,通过增大初始归并段的长度来减少初始归并段的数量,从而使多路归并的趟数减少。2)从WA中选出其中关键字取最小值的记录,记为MINIMAX记录,

2024-11-21 17:47:25 229

原创 2.败者树

这大大减少了比赛的次数,败者树不像胜者树一样一眼就可以看到每场比赛的获胜者,而是当一个冠军选拔出之后,新来的队伍很轻易的可以通过结点找到上一次的败者,只需要和上次的败者打完就可以决出下一个冠军。k个叶结点分别对应 k个归并段中当前参加比较的元素,非叶子结点用来记忆左右子树中的“失败者”,而让胜者往上继续进行比较,一直到根结点。除了第一次构造败者树时需要比较k-1次,根据最小的元素根据冠军结点中存取的最小数据项所在的归并段号将最小元素输出后,决出下一个冠军只需要比较[log2k]就好。构造一棵完全二叉树。

2024-11-21 17:45:21 379

原创 1.多路归并

将磁盘块读入内存缓存区时就将磁盘块内的数据进行内部排序好,接着归并到输出缓冲区生成归并段。注:按照本节介绍的方法生成的初始归并段,若共 N 个记录,内存工作区可以容纳L个记录,读写外存时间肯定占大头,故此我们只要优化了归并的趟数就可以减少读写外存的时间。对r个初始归并段,做K路归并,则归并树可用K叉树表示;①k路归并时,需要开辟k个输入缓冲区,内存开销增加。若树高为h,则归并趟数=h-1=[logkr]K越大,r越小,归并趟数越少,读写磁盘数越少。内部排序的时间和内部归并的时间由CPU决定;

2024-11-21 17:42:37 363

原创 4.选择排序

但是,每次扫描最小元,每次取的都是最小元?怎么快速找到最小元呢?来优化这个选择排序!这也就是堆排序的由来。

2024-10-26 23:10:38 256

原创 2.插入排序(斗地主起牌)

扑克牌起牌。

2024-10-26 23:00:19 247

原创 红黑树(Red-Black Tree)

二叉搜索树在一般情况下,均可以以O(log n)的效率高效的维护查找,插入,删除这三个操作; 但是当数据本来就有序的极端情况下就会使得构建的二叉搜索树变成链表的状态,使得效率退化成O(n); 而平衡二叉树(AVL树)通过旋转的操作时刻使二叉搜索树保持平衡的状态以位置最佳的效率,从而避免二叉搜索树出现向上的极端情况; 而红黑树和AVL树一样都是一种二叉搜索树,是对二叉搜索树的平衡的另一种思想。 前提是其为二叉搜索树,也即左子树

2024-10-26 22:53:55 509

原创 B+树(B树的改进)

B+树是一种改进自B树的数据结构,它可以在数据文件中快速地查找数据,也可以通过多级索引结构加速查询速度。B+树的每个叶子节点都包含关键字和对应的记录指针,而非叶子节点则用于快速定位关键字。B+树可以进行顺序查找和随机查找,同时还可以结合两者进行范围查找。它是一种常用于数据库索引的数据结构。

2024-10-26 22:50:34 652

原创 1.散列查找

选择合适的散列函数h(key),散列法的查找效率期望是常数O(1),它几乎与关键字的空间的大小n无关!也适用于关键字直接比较计算量大的问题;它是以较小的α为前提。因此,散列方法是一个以空间换时间的方法;散列方法的存储对关键字是随机的,不便于顺序查找关键字,也不适合于范围查找,或最大值最小值查找。对于开放地址法来说:1.散列表是一个数组,存储效率高,随机查找。2.散列表会存在“聚集”现象。3.关键字删除需要“懒惰删除”法,从而产生存储“垃圾”。

2024-10-24 11:51:42 1260

原创 6.快速排序

由于每次划分后pivot的位置一定是最后排序好的正确位置,所以对的上的就是pivot,但是由于77左右的序列不符合“所有比枢轴小的元素在枢轴左边,所有比枢轴大的元素在枢轴右边”的原则,所以选81。这个基准可以是数组的第一个元素、最后一个元素或随机选择的元素。:遍历数组,将比基准小的元素移动到基准的左边,比基准大的元素移动到基准的右边。:当左右指针相遇时,将基准元素放在指针的位置,这样基准左侧都是比它小的元素,右侧都是比它大的元素。第一次划分后,所有比枢轴小的元素在枢轴左边,所有比枢轴大的元素在枢轴右边。

2024-10-24 09:34:09 1018

原创 高级语言源程序转换为可执行目标文件

将高级语言源程序转换为可执行目标文件的过程通常包括以下几个主要步骤: 1. 预处理(Preprocessing)​ • 宏替换:将宏定义替换为具体的代码。​ • 文件包含:将包含的头文件内容插入到源文件中。​ • 条件编译:根据条件编译指令选择性地编译代码片段。 2. 编译(Compilation)​ • 词法分析:将源代码分解为记号(tokens)。​ • 语法分析:根据语法规则构建语法树(parse tree)。​ • 语义分析:检查语法树的语义正确性。​ • 中间代码生成:将语法树转换为中间代码(通

2024-10-19 18:45:13 889

原创 算数表达式的存储

• 若优先级小于等于栈顶运算符时,将栈顶运算符弹出并输出;再比较新的栈顶运算符,直到该运算符大于栈顶运算符优先级为止,然 后将该运算符压栈;【2019 统考真题】用有向无环图描述表达式(x+y)((x+y)/x),需要的顶点个数至少是(5)。将栈顶的运算符弹出并输出,直到遇到左括号(出栈,不输出);3. 最后,堆栈顶上的元素就是表达式的结果值。有向无环图表示的表达式,图的形态是不唯一的。2.该运算左边的运算是二叉树的左子树;3.该运算右边的运算是二叉树的右子树。,则把堆栈中存留的运算符一并输出。

2024-10-16 17:17:43 628

原创 图的应用——最短路径

BFSDijkstraFloyd用途求单源最短路径求单源最短路径求各项点之间的最短路径无权图适用适用适用有权图不适用适用适用带负权值的图不适用不适用适用带负权回路的图不适用不适用不适用时间复杂度O(|v|^2)或O(|v|+|e|)O(|v|^2)O(|v|^3)

2024-10-16 12:57:12 937

原创 图的应用——关键路径

它表示项目中各个活动之间的依赖关系和时间要求,帮助确定项目的关键路径,并计算出完成项目的最短时间。事件v的最迟开始时间:定义在不影响整个工程进度的前提下,事件v必须发生的时间称为v的最迟开始时间(late event),记作le(v)。顶点表示事件,有向边表示活动,边e的权c(e)表示完成活动e所需的时间(比如天数)。对于每个活动a,求出d(a)=l(a)-e(a),若d(a)为0,则称活动a为关键活动。最早开始时间等于最晚开始时间的就是关键活动,所有关键活动的路径就是关键路径。

2024-10-15 15:53:35 1115

原创 图的应用——最小生成树

求右侧带权图的最小(代价)生成树时,可能是克鲁斯卡(Kruskal)算法第2次选中但不是普里姆(Prim)算法(从v4开始)第2次选中的边是( )在无向图中求一颗树(n-1条边,无环,连通所有点,而且这棵树的边权和最小。点越多,效率越低,多少边不影响该算法效率,该算法相较下更适用于稠密图。边越多,效率越低,多少点不影响该算法效率,该算法相较下更适用于稀疏图。每次挑选最小的不在已有的同一个连通分量中的边加入进去。(V1,V3) 或 (V3,V4) 或。(V1,V3) 或 (V3,V4)故答案是(V2,V3)

2024-10-15 09:25:16 530

原创 KMP算法

NEXT[0] 通常初始化为 -1。如果,则,同时递增i和j。如果不匹配,且j > 0,回退到NEXT[j-1],否则。NEXT数组的构建时间复杂度是 O(m),其中 m 是子串的长度。代码演示:// 注意i从1开始,j从0开始// next数组的第一个值为0j++;i++;

2024-10-12 17:27:27 3955

原创 B树(Balance-tree,多路平衡查找树)

M阶的B树的结点最多有M个分支。

2024-10-11 11:52:34 1075

原创 树,二叉树和森林的遍历

2.先序遍历中根节点的下一个必定是整个树的左子树的根结点,在中序遍历中找到左子树的根结点,其左边是左子树的左子树,其右边是左子树的右子树。1.后序遍历的最后一个必然是整棵树的根结点,在中序遍历中找到根节点,其左边的所有是左子树,右边的所有是右子树。其实同二叉树的遍历一样,先序和后序遍历过程中经过的结点路线都一样,只不过是访问该结点的时机不同而已。1.先序遍历的第一个必定是整个树的根节点,在中序遍历中找到根结点,根结点左边是左子树,右边是右子树。先序都一样,二叉树的中序对应树与森林的后序遍历。

2024-10-10 16:33:47 746

原创 树,森林与二叉树的转换

由于树转换为二叉树后必没有右子树,所以将森林中的每棵树先转化为二叉树后,再将第二颗树转换为的二叉树作为第一棵树转换为的二叉树的右子树。从物理结构上看,树的孩子兄弟表示法与二叉树的二叉链表表示法其实是相同的,因此对一个物理结构的不同解释就可以将一棵树转换为二叉树了。将二叉树的右链断开后,根结点及其左子树作为森林中的第一棵树;2.每棵树的根可以视为兄弟,在每颗树的根之间连线;1.每个结点的左指针指向它的第一个孩子;由于根节点没有兄弟,所以树转换为二叉树后。1.将森林中的每棵树转换为对应的二叉树;

2024-10-10 12:20:43 516

原创 树的存储结构

又称二叉树表示法,即以二叉链表作为树的存储结构。孩子兄弟表示法使每个结点包括三部分:指向第一个孩子结点的指针域,该结点的结点值,兄弟结点的指针域(沿此域可以找到该结点的所有兄弟结点)。采用一组连续空间来存储每个结点,同时每个结点总增设一个伪指针,指向其父结点在数组中的位置。找儿子简单,找爹难(要是不设额外的父结点指针的话),优点是利于树转换为二叉树的操作。将每个结点的孩子们存在一张线性表中,以单链表为存储结构;好查父结点,不好查儿子结点(需要遍历整个数组)。好查儿子结点,不好查父结点(需要遍历孩子链表)。

2024-10-10 10:11:48 516

原创 四、网络层(下)

检查ARP告诉缓存,有时对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中的所有主机都能收到该请求。当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。目前广泛应用的IPV4地址是上世纪70年代的产物,互联网的飞速发展,到2011年二月,IPV4地址已经耗尽,为了解决这个问题,有以下三种措施。

2024-10-03 10:40:17 1344

原创 四.网络层(上)

主要任务是把分组从源端传送到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。1.路由选择与分组转发【最佳路径】2.异构网络互联3.拥塞控制若所有节点都来不及接收分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。我们知道,网络层的一个主要设备就是路由器,而路由器的主要功能就是进行分组转发和路由选择。为了完成这些功能,路由器就需要进行维护自身的一张路由表。而维护这张路由表的方法就是路由算法。

2024-10-03 10:25:06 819

原创 三、数据链路层(下)

互联网=通过路由协议联通的N个局域网。局域网=以太网+TCP/IP协议。以太网=基于广播(MAC寻址)和碰撞检测机制 CSMA/CD 的网络。

2024-10-02 17:17:09 1158

原创 三、数据链路层(上)

结点:主机,路由器链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线,光纤和微波,分为有线线路和无线线路。数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。帧:链路层的协议控制单元,封装网络层数据报。数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。1.累计确认(偶尔捎带确认)2.接收方只按序接收帧,不按序无情丢弃3.确认序列号最大的,按序到达的帧4.发送窗口最大为2n-1,接收窗口大小为1。

2024-10-02 14:56:04 1691

原创 六.应用层

如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。目前由于http协议的数据是未加密的,安全性的得不到保障,大多数的http转为了htttps,是将传输层使用的TCP转为了SSL,SSL是TCP的加强版,SSL不仅可以做TCP所做的一切,而且提供了安全性服务。给本地DNS服务器。

2024-10-02 14:12:45 1096

原创 五.运输层

只有主机才会有的层次。1.传输层提供进程和进程之间的逻辑通信。2.复用和分用。3.传输层对收到的报文进行差错检错。【传输层的接收到的报文就是网络层的数据报的数据部分,网络层检验了报文首部,这样只需要让运输层检验报文就好。4.传输层的两种协议。【UDP,TCP】

2024-10-02 14:08:12 1227

原创 二.物理层

传输介质也称传输媒体/传输媒介,它是数据传输系统中在发送设备和接收设备之间的物理通路。(友情提示:信道是逻辑通路)传输媒体并不是物理层。传输媒体在物理层下面,因为物理层属于结构体系的第一层,因此有时也称传输媒体为第0层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表什么意思。但物理层规定了电气特性,因此能够识别说传送的比特流。【物理层是傻瓜,传输介质比傻瓜还傻。

2024-10-02 14:02:16 1094

原创 一、计算机网络体系结构

这一层解决了从物理层接收的原始比特流中的错误,提供了错误检测和纠正机制(如CRC校验),地址解析(MAC地址),以及流量控制和帧同步。(1)TCP/IP协议模型只有4层(数据链路层,网络层,传输层,应用层),而OSI参考模型有7层(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)。相当于OSI模型的会话层、表示层和应用层,包含所有高级协议,如HTTP、FTP、SMTP等,直接为用户的应用程序提供服务。相当于OSI模型的物理层和数据链路层,负责物理接口的细节和数据链路层的传输。

2024-10-02 13:52:35 1769

SpringBoot整合ssm-图书管理系统前端静态资源

图书管理系统前端静态资源

2025-01-20

KMP算法算法的实现包括next数组的构建以及算法主体,并附上注释

KMP算法算法的实现包括next数组的构建以及算法主体,并附上注释

2024-10-12

1.冒泡排序附上注释及其思想

1.冒泡排序附上注释及其思想

2024-07-30

图的遍历及其C语言实现

图的遍历及其C语言实现

2024-07-29

图不连通怎么办?套上一层循环完美解决

图不连通怎么办?套上一层循环完美解决

2024-07-29

并查集-集合的高效实现

并查集-集合的高效实现

2024-07-29

C语言实现哈夫曼树的构建与哈夫曼编码

能读文件,统计词频,再编码

2024-07-28

堆:以完全二叉树形式组织元素并以数组存贮

堆:以完全二叉树形式组织元素并以数组存贮

2024-07-28

二叉搜索树的查找插入删除

二叉搜索树的查找插入删除

2024-07-27

遍历二叉树的应用:求二叉树的高度

遍历二叉树的应用:求二叉树的高度

2024-07-27

遍历二叉树的应用:输出二叉树中的叶子结点

遍历二叉树的应用:输出二叉树中的叶子结点

2024-07-27

二叉树的遍历附上注释(先序,中序,后序,层序,递归与非递归)

二叉树的遍历附上注释(先序,中序,后序,层序,递归与非递归)

2024-07-26

二分查找代码实例附上注释

二分查找代码实例附上注释

2024-07-26

加一取余法的示例,实现0~max-1的循环输出

加一取余法的示例,实现0~max-1的循环输出

2024-07-24

链式队列的C语言实现附上注释

链式队列的C语言实现附上注释

2024-07-24

循环队列的c语言实现附上注释

循环队列的c语言实现附上注释

2024-07-24

堆栈的顺序存储实现附上注释

堆栈的顺序存储实现附上注释

2024-07-23

堆栈及其C语言实现附上注释

堆栈及其C语言实现附上注释

2024-07-23

链表的C语言实现带注释

链表的C语言实现带注释

2024-07-22

空空如也

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

TA关注的人

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