![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
总结
文章平均质量分 80
明里灰
不愤不启 不悱不发.
展开
-
C语言的输入输出和条件判断
数据类型、运算符与表达式1.数据类型基本数据类型包括取值范围2.常量和变量常量变量定义变量变量的分类为什么要用变量3.输入与输出格式输出函数printf()打印时的输出类型格式输入函数scanf()4.算术运算符和算术表达式两个单目运算符和五个双目运算符自增/自减运算符逗号运算符和逗号表达式求字节原创 2023-10-20 15:42:42 · 1224 阅读 · 0 评论 -
MyBatisPlus的学习项目页面
MyBatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息类名驼峰转下划线作为表名名为id的字段作为主键变量名驼峰转下划线作为表的字段名。原创 2023-10-15 23:58:17 · 723 阅读 · 1 评论 -
Redis的学习
Redis的SortedSet是一个可排序的set集合,与Java中的TreeSet有些类似,但底层数据结构差别很大。SortedSet中的每一个元素都带有score属性,可以基于score属性对元素排序,底层的实现是一个跳表加hash表。Redis中的List类型与Java中的LinkedList类型,可以看做是一个双向链表结构,既可以支持正向检索也可以支持反向检索。Hash类型,也叫散列,其value是一个无序字典,类似于Java中的HashMap结构。原创 2023-09-27 14:29:17 · 210 阅读 · 0 评论 -
Vue2的学习
computed计算属性概念基于现有数据,计算出来的新属性,依赖的数据变化,会自动重新计算生命周期Vue生命周期:一个Vue实例从创建到销毁的整个过程,工程化开发&脚手架Vue CLI,组件化:一个页面可以拆分为一个个组件,每个组件有着自己独立的结构、样式、行为。好处:便于维护,利于复用,提升开发效率原创 2023-09-13 11:46:32 · 140 阅读 · 0 评论 -
23下半年学习计划
现在已经是大二了,java只学了些皮毛,要学的知识还有很多,新的学期要找准方向,把要学的知识罗列,按部就班地完成计划。上一个项目是Web博客项目,其实要配置好Maven的,但是只用了简单的导包,要先把Maven这一节的看一下。学习spring,springboot,mybatisplus,利用学的知识做接下来的这个项目。还有做算法题,我的算法是最薄弱的,还是要在算法上多花时间。flex布局还是要再熟练一些,做项目的时候灵活运用。学一下node.js和vue。学一下网络爬虫知识。原创 2023-09-14 21:22:31 · 438 阅读 · 1 评论 -
vue的学习
设置可以写为 v-bind:src="imgSrc",也可以简写为 :src="imgSrc"表达式的值为true,元素存在于dom树中,为flase时从dom树中移除。v-text指令的作用是:设置标签的内容(textContent)axios回调函数中的this已经改变,无法访问到data中的数据。v-html指令的作用是:设置元素的innerHTML。设置元素的属性(比如:src,title,class)根据表达式的真假,切换元素的显示和隐藏。根据表达值的真假,切换元素的显示和隐藏。原创 2023-09-08 18:41:10 · 219 阅读 · 0 评论 -
node.js
开发项目直到上线,过程中集成的所有工具和技术Node.js是独立执行JavaScript代码的环境Node.js环境比浏览器环境中的JS少了BOM和DOM。nodemon作用替代node命令,检测代码更改,自动重启程序使用安装:npm i nodemon -g(-g代表按照到全局环境中)运行:nodemon待执行的目标js文件需求启动准备好的项目,修改代码保存后,观察自动重启应用程序原创 2023-09-17 10:30:15 · 474 阅读 · 0 评论 -
Web博客项目及jwt的学习
实际上是对头部以及负载内容进行签名,防止内容被篡改,如果有人对头部以及负载的内容解码之后进行篡改,再进行编码,最后加上签名组合形成新的JWT的话,那么服务器回判断出新的头部和负载形成的签名和JWT附带上的签名是不一样的。令牌的第二部分是有效负载,其中包含声明,声明是有关实体(通常是用户)和其他数据的声明,同样也会使用Base64编码,是JWT的第二部分。放在一起之后,是由三个点分隔的Base64-URL字符串,可以在HTML环境中传递这些字符串,与基于XML的标准相比,它更紧凑。原创 2023-07-29 23:39:20 · 594 阅读 · 0 评论 -
HTTP以及Servlet的学习
当客户端请求到达后,服务器进行转发,此时会将请求对象进行保存,地址栏中的URL地址不会改变,得到响应后,服务器端再讲响应发送给客户端,从始至终只有一个请求发出。在接收和解释请求信息后,服务器返回一个HTTP响应信息,HTTP响应由三个部分组成:状态行,消息报头,响应正文。通过该对象可以在一个请求中传递数据,作用范围:在一次请求中有效,即服务器跳转有效。通过服务器的出现将一些只需保存在客户端,在客户端处理的数据,不需要通过网络传输。请求行以一个方法符号开头,空格分开,后面跟着请求的UPI和协议的版本。原创 2023-07-12 22:48:24 · 816 阅读 · 0 评论 -
MyBatis的学习
org.apache.itatis.session.SqlSession:构建者对象接口,用于执行SQL,管理事务,接口代理。parameterType属性:指定参数映射对象类型。resultType属性:指定结果映射对象类型。namespace属性:名称空间。:新增功能标签。:修改功能标签。:删除功能标签。select:查询功能的标签。查询功能标签。mapper:核心根标签。原创 2023-07-16 01:51:15 · 215 阅读 · 0 评论 -
axios的学习
AJAX原理-XMLHttpRequestXMLHttpRequest(XML)对象用于与服务器交互,通过XMLHttpRequest可以在不刷新页面的情况下请求特定URL,获取数据,这允许网页在不影响用户操作的情况下,更新页面的局部内容,XML在AJAX编程中被Promise-三种状态作用:了解Promise对象如何处理关联的处理函数,以及代码执行顺序概念:一个Promise对象,必然处于以下的几种状态之一待定:初识状态,没有被对线,也没有被拒绝已兑现:意味着操作成功已拒绝:意味着操作失败原创 2023-07-08 23:41:41 · 392 阅读 · 0 评论 -
JavaScript的学习
高级语言主要是相对于低级语言而言,并不是特指某一种具体的语言,包括很多编程语言:如C语言,C++,Java,C#,Python,PHP,在编程语言里会出现很多if else,for,while等具有逻辑性和行为能力的指令,这是主动的。编程语言是用来控制计算机的一系列指令,有固定的格式和词汇,必须遵守,如今通用的编程语言有两种形式:汇编语言和高级语言。代表空,否定的值会被转换为false,如:'',0,NaN,null,undefined。,Go语言,Objective-C,Swift等。原创 2023-07-05 22:50:22 · 280 阅读 · 0 评论 -
CSS的学习4(盒子模型及浮动)
上是5px右10px下20px 左30px(顺时针)对于两个嵌套关系(父子关系)的块元素,父元素有上外边距,同时子元素上也有上外边距,此时父元素会塌陷较大的外边距值。网页元素很多带有默认的内外边距,而且不同浏览器默认的也不一致,所以在布局前,首先要清除网页元素的内外边距。行内元素为了照顾兼顾性,尽量只设置左右内外边距,不要设置上下内外边距,但是转换为块级和行内块元素就可以了。//上是5px,左右是10px,下是20px。边框(border)原创 2023-07-05 22:49:12 · 406 阅读 · 0 评论 -
CSS的学习3
CSS是层叠样式表的简称,又称为CSS样式表或级联样式表。CSS是一种标记语言。主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)、版面的布局和外观显示样式。由HTML专注去做结果呈现,样式交给CSS,即结构(HTML)与(CSS)分离。原创 2023-07-04 09:23:28 · 112 阅读 · 1 评论 -
html5前端学习2
快捷键:Ctrl+Alt+Down 向下选取Ctrl+Alt+Up 向上选取(会出现多个光标,可以同时输入)Ctrl+Enter 无论光标在哪个位置,都向下换行,与Enter有区别超链接标签链接分类外部链接:例如 百度内部链接:网站内部页面之间的相互链接,直接链接内部页面名称即可,例如< a href="index.html"> 首页原创 2023-06-21 22:55:52 · 2639 阅读 · 0 评论 -
Dao层、Service层、Entity层、Servlet层、Utils层
分层架构的作用是什么?——分解复杂度软件系统分层架构模式里的组件被分成几个平行的层次,每一层都代表了应用的一个功能。降低复杂度,上层不需要关注下层细节。提高灵活性,可以灵活替换某层的实现。减小耦合度,将层次间的依赖减到最低。有利于重用,同一层次可以有多种用途。有利于标准化。三层架构?——表现层-领域层-数据源层(持久层)表现层:提供服务,显示信息领域层:系统核心逻辑数据源层:与数据库、消息系统以及其他软件包通信关于面向对象的三层架构:——表现层-业务层-持久层持原创 2023-06-14 22:09:58 · 1314 阅读 · 1 评论 -
CSS的学习2
文档流文档流是文档中可显示对象在排列时所占用的位置/空间例如:块元素自上而下摆放,内联元素从左到右摆放标准流中的限制很多,导致很多页面无法实现高矮不齐,底边对齐空白折叠现象无论多少个空格,换行,tab,都会折叠为一个空格无论我们想要img标签之间没有空隙,必须紧密连接文档流产生的问题高矮不齐,底边对齐文本内容 img{ width:原创 2023-06-19 00:15:44 · 1277 阅读 · 0 评论 -
CSS的学习1
内部样式当单个文档需要特殊样式时,就应该使用内部样式表,你可以使用标签定义内部样式表。提示:单个页面内的CSS代码具有统一性和规划性,便于维护,但是在多个页面之间容易混乱。 h3{ color:red; font-size:30px; } 外部样式当样式需要应用于很多页面时,外部样式表是理想的选择。在使用外部样式表的情况原创 2023-06-09 02:24:15 · 627 阅读 · 0 评论 -
html5前端学习
定义HTML文档,浏览器看到后就明白这个是HTML文档,所以其他元素要包裹在它里面,标签限定了文档的开始点和结束点。原创 2023-06-04 14:56:45 · 1173 阅读 · 0 评论 -
《MYSQL必知必会》读书笔记3
组合查询是执行多个查询语句(SELECT语句),并将结果作为单个查询结果集返回,这些组合查询通常称为并或符合查询。可用UNION操作来组合数条SQL查询,利用UNION,可给出多条SELECT语句,它们的结果组合成单个结果集。原创 2023-06-07 00:29:13 · 216 阅读 · 0 评论 -
二叉搜索树
二叉搜索树又叫二叉查找树或者二叉排序树。它支持快速的查找,插入删除一个数据。它的每个结点是一个对象,包括 key,卫星数据,还不快一些为了维护树结构所需要的信息:left、right、parent,分别指向左孩子、右孩子、父结点。如果孩子节点或者父结点不存在时,用NULL表示。每个结点都比它的左节点打,比右节点小每个结点的左右子树都是一课二叉搜索树对一颗二叉搜索树进行中序遍历的结果是从小到大排序。原创 2023-05-28 22:36:04 · 446 阅读 · 0 评论 -
二叉树的学习
对于树中的每个结点X,它的左子树中所有项的值小于X,而它的右子树的中所有项的值大于X,这意味着该数所有的元素可以用某种一致的方式排序。生成二叉树或者二叉查找树的时候,很容易失衡,造成的最坏的情况是只有左子树或者右子树,这样会导致树的检索效率会降低很多。结点是红色或者黑色的平衡二叉树,通过颜色的约束来维持二叉树的平衡。性质:从根到叶子的最长的可能路径不多于最短的可能路径的两倍。根结点在第一层,根结点的子结点属于第二层……从根结点到当前结点的唯一路径上的结点总数。根结点、父结点、子结点、兄弟结点。原创 2023-05-23 22:23:01 · 425 阅读 · 0 评论 -
循环队列、双端队列 C和C++
队列是一种特殊的线性表,它只允许在(称为队头,front)进行——,而在(称为队尾,rear)进行——,是一种操作受限的线性表。最先进入队列的元素最先被删除,是“”的线性表。原创 2023-04-09 14:40:35 · 615 阅读 · 0 评论 -
双栈共享的初始化、入栈、出栈
程序中同时存在几个栈,因为各个栈所需的空间在运行中是动态变化着的。如果给几个栈分配同样大小的空间,可能实际运行时,有的栈膨胀得快,很快就产生了溢出,而其他的栈可能此时还有许多空闲空间,这时就可以用双栈。,在实际运算过程中,一个栈有可能进栈元素多而体积大些,另一个则可能小些。进栈往中间进就可以了。整个数组存满了才会真的栈满。,是一种特殊的顺序栈。原创 2023-04-01 15:29:27 · 1312 阅读 · 0 评论 -
栈的初始化,入栈和出栈
尝试在原来的地址上扩展或者缩小,如果需要扩展而空间不足,会分配新的空间并复制旧的数据过来,再释放掉旧的内存空间。可以动态分配内存的函数,可以为链表开辟新的结点分配空间,也可以为指针存储的内存分配一块合适大小的空间。这一端被称为栈顶,另一端称为栈底。向一个栈插入新元素被称为进栈、缺点是存在栈中的数据大小与生存期必须是确定的。优势是存取速度比堆要快;从一个栈删除元素又称作。原创 2023-04-01 11:52:13 · 1509 阅读 · 0 评论 -
链表——删除元素或插入元素(头插法及尾插法)
是一种在存储单元上非连续,非顺序的存储结构,由一系列结点组成,结点可以在运行的过程中,每个结点包括两部分:存储数据的;存储下一节点地址的。对的理解:将某个变量(例如 int a)赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存储了这个变量的内存地址,指向了这个变量,通过指针就能找到这个变量。原创 2023-03-29 13:45:21 · 3347 阅读 · 1 评论 -
无头结点的单链表
先来了解头结点是什么:头结点是在首元结点之前设的一个结点,其 next 指针指向首元结点,其数据域可以不存储任何信息,但是头结点一定指向是链表中第一个结点的指针,而且头指针不能变。无头结点时,如果增加的元素放在第一个结点前,或者删除第一个结点时,要换新的首元结点,此时要用到二级指针。有头结点时,对链表的第一个数据元素的操作(插入、删除)与其他的数据元素相同,无需进行特殊处理。无论链表是否为空,头指针都是非空指针,指向首元结点。首先,无头结点的链表和有头结点的链表有什么区别呢?原创 2023-03-21 20:21:56 · 589 阅读 · 0 评论 -
文件操作:打开、关闭、读取、定位
C语言文件操作,关闭、读取、定位 读入用vs使用 fopen等函数时,如果遇到打开不了的情况,例如:可以在预定义时,加上:#define _CRT_SECURE_NO_WARNINGS读入不了解函数时,用鼠标点击该函数,按 Fn 键+ F1键。原创 2023-03-14 20:12:35 · 424 阅读 · 0 评论 -
最短路径——迪杰斯特拉(Dijkstra)算法
它并不是一下子就求出一个点到另一个点的最短路径,而是一步步求出他们之间顶点的最短庐江,过程中都是基于已经求出的最短路径求出的最短路径,最终得到你想要的结果。而对于网图来说,最短路径指的是两顶点间经过的边上的权值之和的最小路径,并且路径上的第一个点被称为源点,最后一个点被称为终点。如果你要从一个城市到另一个城市,中途可以有很多种换乘方法,根据不同人的需求,怎么样才能实现价格最少(价格和路程成正比)?第 m+1 行,每行三个数 x,y,z,代表一条边的信息(两个端点和它的权值)这就需要研究图的最短路径问题。原创 2023-02-03 20:19:27 · 500 阅读 · 0 评论 -
链式前向星
或许有些题目给我们的要求是找到某一个顶点所在的边,这样的题目看上去不难,循环存入数据后,再循环查找便可以实现了。但是还有更简单的方法,可以在存入数据的同时找到某一个顶点所在的边。但这些方法对于数据过多的情况会卡壳,毕竟要开辟一个比较大的空间,而且空间的利用效率不高。然后定义一个 first 数组, 它的下标代表顶点编号,然后对应的值代表在图中这个顶点连接有多少条边。第 2~m+1 行,每行三个数,分别为 a,b,c,为一条边的两个端点和这条边的权值。(a)表示 u 的出度(以 a 为出发点的变数)。原创 2023-02-02 23:12:38 · 97 阅读 · 0 评论 -
最小生成树——克鲁斯卡尔(Kruskal)算法
前面说的普利姆算法是以某顶点为起点,逐步找各顶点上最小权值的边,来构建最小生成树的。这就像是我们如果去参观某个展会,一种方法是从入口进去后,到最近的场馆观光,看完后再紧挨着看下一个;还有例外一个方法,实现计划好所有路线,进展会后直接去最想看的场馆,也就相当于去之前做好了攻略。其中 V0~V8 是村庄,之间连线的数字表示村与村间的可通达的直线距离,比如 V0 至 V1 就是 10 千米(个别如 V0 与 V6,V6 与 V8,V5 与 V7 为测算距离是因为有高山或者湖泊,不予考虑)。原创 2023-02-01 20:55:35 · 319 阅读 · 0 评论 -
最小生成树——普利姆(Prim)算法
构成连通网的最小代价生成树称为最小生成树(Minimun Cost Spanning Tree).最小生成树可以运用到生活中,假如你是一位工程师,需要为一个镇的九个村庄架设通信网络做设计,村庄位置大值如下图:其中 V0~V8 是村庄,之间连线的数字表示村与村间的可通达的直线距离,比如 V0 至 V1 就是 10 千米(个别如 V0 与 V6,V6 与 V8,V5 与 V7 为测算距离是因为有高山或者湖泊,不予考虑)。你们领导要求你必须用最小的成本完成本次任务。该怎么做?这是一个带权值的图,即网状结构。原创 2023-01-30 23:20:28 · 1150 阅读 · 0 评论 -
散列表——哈希表(hash)
可以通过查找关键词不需要比较就可以获得需要记录的存储位置。这就是一种新的存储技术——散列技术。散列技术既是一种存储方法,也是一种查找方法。散列技术是在记录的存储位置和它的关键词之间建立一个确定的对应关系 f,使得每个关键字 key 对应一个存储位置 f(key)。查找是,根据这个确定的对应关系找到给定值 key 的映射 f(key),若查找集合中存在这个记录,则必定在 f(key)的位置上。这里的对应关系 f 成为散列函数,又称为哈希(Hash)函数。原创 2023-01-12 20:25:25 · 238 阅读 · 0 评论 -
KMP模式匹配算法
对于KMP算法,刚接触可能会很迷糊,它用在哪?怎么用?我们应该都做过这样一类题,就是两个字符串 s1 和 s2,比较较长的字符串 s1 是否包含 字符串 s2,这个听上去很简单,不过事实也的确如此,但是如果这个字符串很长呢?对于字符串 s1 是 “ aaaaaaaaab ”,字符串 s2 是 “ aaab ”,那么要将字符串 s2 遍历 7 遍才行,它的时间复杂度是 O(N*M)(注:N 为 s1 的长度,M 为 s2 的长度)。如果 s1 和 s2 都足够长呢?比如说字符串 s1 的前都是原创 2023-01-11 12:00:00 · 186 阅读 · 0 评论 -
堆——神奇的优先队列
堆是一种特殊的完全二叉树。完全二叉树中,所有父结点的值都比子结点得值要小,被称为最小堆;反之,被称为最大堆。树,是指任意两个结点间有且只有一条路径的无向图(没有回路的连通无向图)。为了确定一棵树的形态,在树中可以指定一个特殊的结点——根。将树中的每一个点称为结点。如上图,左边这棵树的树根是 1 号结点,右边这棵树的树根是 3 号结点。根又叫做根结点,一棵树有且只有一个根。根结点有时候也被称为祖先原创 2023-01-04 11:14:10 · 99 阅读 · 0 评论 -
城市地图和最少转机问题
该邻接矩阵表示了任意两个城市之前的路程,比如 e[1][2] 的值为 2 就表示从 1 号城市到 2 号城市的路程为 2 公里,而 e[1][3] 的值为 ∞,表示目前从 1 号城市不能到达 3 号城市。用深度搜索解题是这样:根据邻接矩阵,从 1 号城市出发,可以到达 2 号城市和 5 号城市;1->2 其中如果先到 2 号城市,从 2 号城市出发,可以到达 3 号城市和 5 号城市;1->2->3 其中然后先到 3 号城市,从 3 号城市出发,可以到达 4 号城市;1->2->3-原创 2023-01-03 15:42:42 · 260 阅读 · 0 评论 -
图的遍历解读深度搜索和广度搜索
从顶点 1 开始,沿顶点 1 的边去尝试访问其他未被访问的顶点;首先顶点 2 还没有走到过,于是来到了 2 号顶点。再以 2 号顶点作为出发点继续尝试访问其他未走过的顶点;这样就走到了 4 号顶点。再以 4 号顶点作为出发点继续尝试其他为走到过的顶点。但是此时不能继续访问其他未走过的顶点了。所以要返回 2 号顶点,返回 2 号顶点之后,也不能返回其他未被走过的顶点了;接着返回到 1 号顶点,从 1 号顶点可以访问到 3 号顶点,再以 3 号顶点作为出发点访问;然后可以走到 5 号顶点,此原创 2023-01-02 22:16:59 · 158 阅读 · 0 评论 -
搜索的实例——水管工游戏
游戏的大致规则是这样的。一块矩形的土地上被分为 n*m 的单位正方形,现在这块土地上已经埋有一些水管,水管将从坐标(1,1)的矩形土地的左上角左部边缘,延伸到坐标为(n,m)的矩形土地右下角右部边缘。输入的第一行为两个整数 n 和 m(都不超过 10),接下来的 n 行,每行有 m 个整数,表示地图的每一小格。如果进水口在左边用 1 表示,进水口在上边用 2 表示,进水口在右边用 3 表示,进水口在下边用 4 表示。水管只有两种形状,水管的摆放有六种,直型水管有两种摆放方法,弯型水管有四种摆放方法。原创 2022-12-30 08:00:00 · 305 阅读 · 0 评论 -
搜索的实例——宝岛探险
小哼通过特殊方法得到了一张不完整的钓鱼岛航拍地图。钓鱼岛由一个主岛和一些附属岛屿组成,小哼决定去钓鱼岛探险,用二维矩阵代表钓鱼岛的航拍地图,图中数字表示海拔,0表示海洋,1-9都表示陆地。小哼的飞机将会降落在一个点(该点不在海洋上),现在需要计算小哼降落点所在岛屿的面积(即有多少个格子)。注意此处我们把与小哼降落点上下左右相连接的陆地视为同一岛屿。首先,第一行输入4个整数为n,m,startx,starty,分别表示地图的行和列,以及降落的初始坐标。为了让搜索的思路更加清晰,再来尝试另一个例子,先看题。原创 2022-12-09 15:39:45 · 258 阅读 · 0 评论 -
搜索解炸弹人
玩过炸弹人的游戏吗? 是用放置炸弹的方法来消灭敌人,要把画面上的敌人全部消灭,然后找到暗门才能通关。【题目描述】有一个关卡是这样的,你只有一枚炸弹,但是这枚炸弹的很大(可以消灭掉横竖方向上所有的敌人)。请问走到哪个空地,把炸弹放在这,可以消灭最多的敌人呢?现在将地图上的墙用‘#’表示(炸弹是不能穿墙的),敌人用‘G’表示,空地用‘ . ’表示,当然,炸弹只能放在空地上。【输入】第一行输入四个整数,分别为n(迷宫的列),m(迷宫的行),startx(纵),starty(横)(起始位置坐标)。接下来的n行m列是原创 2022-12-07 00:08:22 · 153 阅读 · 0 评论