自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快速排序模板

【代码】快速排序模板。

2024-01-14 15:49:17 383

原创 关于lombok插件的使用

这样在编译中 lombok 会为我们自动生成get、set方法,我们可以在maven中选择compile。可以发现编译后的User类里面已经有对应的set和get方法。这样会生成一个target目录,我们打开目录查看。

2024-01-13 14:38:45 449

原创 mybatisplus实现自动创建/更新时间

上述代码中,我们在createTime和updateTime字段上添加了 @TableField 注解,并分别指定了 fill属性为 FieldFill.INSERT 和 FieldFill.UPDATE。现在,当执行插入和更新操作时,Mybatis-Plus会自动填充createTime和updateTime字段的值,无需手动设置。在insertFill和updateFill方法中,我们对MetaObject对象进行了处理,分别设置了createTime和updateTime字段的值。

2024-01-09 09:18:39 1601

原创 vue中短时间内多次点击同一个按钮会向后端发送多个请求

函数接受两个参数:第一个参数是要包装的函数,第二个参数是防抖的时间间隔。在这个例子中,我们将防抖的时间间隔设置为500毫秒。(1)可以通过设置一个标志位来防止用户在短时间内多次点击同一个按钮导致向后端发送多个请求。这样,只有在指定的时间间隔内没有再次触发点击事件时,才会执行发送请求的操作。这样,即使用户在短时间内多次点击同一个按钮,也只会在指定的时间间隔后发送一次请求。函数会在指定的时间间隔内,等待没有再次触发点击事件后才执行发送请求的操作。,然后执行向后端发送请求的代码。函数,而不是直接发送请求的代码。

2024-01-08 16:23:49 1011

原创 mysql的分页查询

假设我们当前页面为 n,每页显示的数据为 m;页面偏移量为 (n - 1) * m;每页显示的页数为 m。

2024-01-07 10:06:58 535

原创 Cache的命中率及相关计算

如果被访问的单元在主存中但不在cache中,需要用 60ns 的时间将其装入cache,然后再进行访问;CPU执行一段程序时,cache完成存取的次数为 2420 次,主存完成存取的次数为 80 次,已知cache存储周期为 40ns,主存存储周期为 240ns,求cache/主存系统的效率和平均访问时间。我们需要注意题目的意思是必须在cache中才能访问,时间要相加,已知cache的命中率为 0.9,则不在cache中但在主存中的概率为 0.06,不在cache中也不在主存中的概率为 0.04。

2024-01-04 19:29:31 2163

原创 指令周期流程图相关题目

已知CPU结构如下图所示,其中包括一个累加器AC、一个状态寄存器和其他几个寄存器。各部分之间的连线表示数据通路,箭头表示信息传递方向。简述完成指令ADD Y的数据通路(Y为存储单元地址,本指令功能为(AC)+(Y)写出图中四个寄存器A、B、C、D的名称和作用;

2024-01-04 18:42:53 681 1

原创 指令流水线的计算

指令流水线有取指(IF)、译码(ID)、执行(EX)、访存(MEM)、写回寄存器(WB)五个阶段,共有 20 条指令连续输入此流水线。采用流水线执行的时间:T2 = m x t + (n - 1) x t;设指令的条数为 n,指令执行需要 m 个阶段,时钟周期为 t。吞吐率 FP = n / T2 条/秒(注意将时间换算成秒)(2)求流水线的实际吞吐率(单位时间里执行完毕的指令数)不采用流水线执行的时间:T1 = n x m x t;(3)求流水线的加速比。(4)求流水线的效率。

2024-01-04 18:16:58 1218

原创 波特率和比特位占用时间相关计算

假设数据传送速率为 120 字符/秒,每一个字符格式规定包含 10 比特位(起始位、停止位、8个数据位),问传送的波特率是多少?每个比特位占用的时间是多少?采用串行接口进行 7 位 ASCII 码传送,带有一位奇校验位、1 位起始位和 1 位停止位,当波特率为 9600 波特时,字符传送速率为?波特率:指利用串行方式传送字符,每秒传送的比特(bit)位数,单位为波特。总的比特位 n = 7 + 1 + 1 + 1 = 10,每个比特位占用的时间 T = 1/1200 s。比特位占用的时间:波特率的倒数。

2024-01-04 16:53:16 519

原创 总线带宽的计算【技巧总结】

假设总线并行传输 m 字节的信息(若这里为传输位数,则需要换算,m / 8 即可),一个总线周期等于 n 个总线时钟周期,总线时钟频率为 f MHz,假设某系统总线在一个总线周期中并行传输4字节信息,一个总线周期占用2个时钟周期,总线时钟频率为10MHz,则总线带宽是()(2009年原题)某总线在一个总线周期中并行传输 64 位,假设一个总线周期等于一个总线时钟周期,总线时钟频率为 66 MHz,求总线带宽?我们注意到这里是 64 位,则 m = 64 / 8 = 8,n = 1,f = 66,

2024-01-04 16:19:19 1145

原创 刷新存储器的存储容量和带宽的计算

刷新存储器的重要性能指标是指它的带宽。带宽 W = M x f = 2.25 MB x 72 /s = 162MB/s。MB = 2.25 MB (注意直接相乘算出来的是字节数B,建议转成MB)(1)刷新存储器的存储容量是多少?(2)刷新存储器的带宽是多少?”,则直接用 24 计算即可;PS:这里题目说的是“

2024-01-04 15:20:24 758

原创 顺序存储和交叉存储相关问题

设存储器容量为32M字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。若存储周期T=200ns,数据总线宽度为64位,总线传送周期 t=50ns。问:顺序存储器和交叉存储器的平均存取时间、带宽各是多少?交叉:T2 = T + (m - 1)xt = 200 + 3 x 50 = 350 ns。顺序:T1 = m x T = 200 x 4 = 800 ns。顺序 W1 = q / T1 = 256 ÷ (800 x。交叉 W2 = q / T2 = 256 + (350 x。

2024-01-02 21:42:46 917

原创 Cache组相联映射相关计算

某计算机的Cache共有16块,采用2路组相联映射方式(即每组2块)。每个主存块大小为32字节,按字节编址。主存129 号单元所在主存块应装入到的Cache组号是?最后我们计算应该装入到cache中的组号 i = k mod n = 4 mod 8 = 4。129号单元在内存中的块数 k = 129 / 32 = 4 (这里取整即可)首先我们可以计算出cache中的组数 n = 16 ÷ 2 = 8组。综上所述,应该装入到cache组号为 4。

2024-01-02 21:25:48 894

原创 uniapp+springboot 实现前后端分离的个人备忘录系统【超详细】

至此后端工程全部创建完毕,按照下图检查一下是否有缺少,注意Mapper可写也可以不写,因为我们不需要写SQL语句,不需要调用Mapper,全部完毕后就可以运行项目,利用apipost进行测试,或者前端创建完后直接集成测试。首先打开IDEA,选择创建Spring Initializr,按照以下配置,jdk版本无法选择jdk1.8,先不管,进去以后可以改,具体操作可以看我的另一篇相关的博客。2.由于uniapp支持多个主流平台,你可以在不同的平台上发布你的备忘录系统,扩大用户群体,增加潜在的收入来源。

2023-12-29 17:18:45 3809 6

原创 01背包问题和完全背包一维数组版【模板可用】

接下来有 n 行,每行两个整数 v[ i ], w[ i ],用空格隔开,分别表示第 i 件物品的体积和价值。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。第一行两个整数,n,m,用空格隔开,分别表示物品数量和背包容积。有 n 件物品和一个容量是 m 的背包。每件物品只能使用一次。第 i 件物品的体积是 v[ i ],价值是 w[ i ]。我们只需要记住 f[ j ] 的转态转移方程即可。输出一个整数,表示最大价值。

2023-12-27 22:31:36 374

原创 上传文件到七牛云的相关代码(可直接用)

这里注意把回显域名替换成你自己的,返回类型替换即可,注意不要删除其他配置文件,若IDEA报错则把鼠标放在报错的地方,根据提示导入对应的包即可。我的存储地区是华南-广东,注意这个如果选择不一样,后面的代码调用会有一点区别,访问控制选择公开,不然回显的外链无法访问。点击左上角的头像,选择秘钥管理,一般是有两组,一组两个,随便选一个,这个AK和SK在后面也会有用。接下来是后端代码,首先是pom.xml,在dependencies中添加如下配置。记住这个空间名称和那个域名地址,后面会有用。

2023-12-24 19:38:43 544

原创 整数二分的建模

二分法的难点在于如何建模和 check() 函数检查条件,其中可能会套用其他算法或数据结构。本题中,所有点两两之间的距离有一个最小值,题目要求使这个。

2023-12-07 22:25:39 189

原创 浮点数的运算

关于浮点数的运算主要有以下五个步骤:(1)对阶(2)尾数求和(3)结果规格化(4)舍入处理(5)溢出处理。

2023-12-07 21:42:18 419

原创 什么是HTTPS协议?

举例来说,当你在网上购物时,你需要提供个人信息和支付信息,这些信息都是非常敏感的。如果你使用的是HTTP协议,那么这些信息就可能被其他人轻松地截取和窃取。但是,如果你使用的是HTTPS协议,你的个人信息和支付信息就会被加密,只有购买方和卖家才能够看到这些信息,其他人无法截取和窃取。因此,HTTPS协议已经成为了保护用户隐私和防止网络攻击的标准。如果没有使用HTTPS,这些信息就可能被恶意攻击者截取并窃取。HTTPS协议通过使用SSL或TLS协议来对传输数据进行加密,从而保护用户的隐私和数据安全。

2023-12-06 20:16:30 254

原创 二分法中mid的处理以及STL二分函数

(1)upper_bound() : 查找第一个大于 x 的元素的位置,pos = upper_bound(a, a + n, x) - a;(3)upper_bound() - lower_bound() : 计算单调序列中 x 的个数。(2)lower_bound() : 查找第一个等于或大于 x 的元素;若需要找 x 或 x 的前驱,则用。left + right可能溢出。left + right无溢出。三种方法各有优缺点,综合起来,负数情况下有向0取整问题。

2023-12-06 19:57:16 296

原创 双指针算法

双指针,算法书上称为尺取法,用来解决序列的区间问题,操作简单,容易编程。如果区间是单调的,也常常可以用二分法求解,所以很多问题双指针和二分法都行。

2023-12-05 23:51:22 642

原创 uniapp切换页面时报错问题

该错误的意思是不能切换到 tabbar 页面。tabbar页面通常是公共页面或者底部导航栏,如果我们用 navigateTo 或者 redirectTo 都不能实现页面切换。第一种是用 switchTab 来进行切换,但注意切换后并不能刷新页面,如果两个页面存在数据交互,在页面切换后需要手动刷新页面才能显示出数据。第二种是用 reLaunch 来切换页面,reLaunch切换时会关闭当且页面,刷新新的页面,存在数据交互也能顺利进行。若需要进行tabbar的页面切换时,建议采用 reLaunch 的方式。

2023-12-05 17:33:45 1771

原创 算法的复杂度

在很多情况下,这是算法可能达到的最优复杂度,因为对输入的 n 个数,程序一般需要处理所有数,即计算 n 次。再如图问题,一个图中有 V 个点和 E 条边,大多数图问题都需要搜索到所有的点和边,复杂度至少为O(V + E)算法和数据结构是紧密结合的,而且有些数据结构有特定的处理办法,此时很难把数据结构和算法区分开来。因为一个算法的空间复杂度是容易分析的,而时间复杂度往往关系到算法的根本逻辑,不容易分析,更能说明一个程序的优劣。(4)确定性:算法中的每条指令必须有确切的含义,对于相同的输入只能得到相同的输出。

2023-12-04 19:02:15 128

原创 springboot如何格式化时间

个人认为这是最简单的解决方式,应对简单课设完全ok。这是利用JsonFormat来格式化时间数据。

2023-12-04 15:38:54 110

原创 基础数据结构----二叉树

按照深度搜索的顺序访问二叉树,对父节点、左孩子、右孩子进行组合,有先序遍历、中序遍历、后序遍历这 3 种访问顺序,这里默认左孩子在右孩子的前面。(1)先序遍历,按父节点、左孩子、右孩子的顺序访问,在上图中,先序遍历输出的结果为EBADCGFIH,先序遍历的第一个节点是根。(3)后序遍历,按左孩子、右孩子、父节点的顺序访问。(3)如果节点 i 有孩子,那么它的左孩子是节点 2i,右孩子是节点 2i + 1。二叉树的一个节点的存储,包括节点的值、左右子节点,有动态和静态两种存储方法。

2023-12-03 21:20:35 135

原创 关于idea2023创建项目时怎么使用jdk8

不急,我们先点击create创建项目,然后打开pom.xml,修改对应的jdk和springboot就行了。那么,如果我们要用jdk8和springboot2的话,那要怎么做呢?修改完成后再刷新一下Maven就可以啦。

2023-12-03 18:40:19 838 1

原创 软件的可维护性和复用性

系统的美,从分析师们头脑之中的美,然后存在于设计师绘制的设计图纸上,然后成为一个原型系统供用户评审,最后迭代开发成为一个真实、有血有肉的可交付客户使用的系统。软件的维护就是软件的再生。Immobility:每当程序员发现一段代码、函数、模块所做的事情可以在别处被使用时,会发现,这些已有的代码会依赖一大堆其他的东西,因此,懒得去动脑筋复用,最常见到的做法就是“源代码复用”,这就是复用率低。一个好的软件设计,必须能允许新的设计要求能以较为容易和平稳的方式加入到已有的系统中去,从而使这个系统能够不断焕发出青春。

2023-12-02 17:33:51 60

原创 java单例模式的四种不同设计

设计1双重检查,第一个判断instance是否为null避免了已有对象时的排队阻塞;的四种不同设计,在多线程的实际环境测试下会表现出不同的效果,请对这几种设计完成。设计3存在线程安全问题,判断null和创建之间可能被打断(如中断、异常等等)设计1、2、4均可,设计3有线程安全问题,多线程并发时可能会出问题。设计4贪心法,对象唯一创建后常驻内存,对内存消耗较大。设计2全局锁直接让每次访问都互斥,性能不佳。下面的Java代码给出了。

2023-12-02 12:23:04 137

原创 计算机如何区分指令和数据?

2、通过地址来源区分,由PC(程序计数器)提供存储单元地址的取出的是指令,由指令地址码部分提供存储单元地址的取出的是操作数。来区分指令和数据,即在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据。这个是计算机组成原理里面的基础知识,2023年下半年软考软件设计师的选择题中考到过。我们知道,指令和数据都存放在内存里面,那么计算机是如何知道是取指令还是取数据呢?一般来说,记住是通过不同的。

2023-12-01 18:00:07 1672 1

原创 利用mybatis-plus查询时报错?

MyBatis-Plus在进行查询时,可能会生成数据库中不存在的属性。这是因为MyBatis-Plus默认开启了实体类属性名到数据库字段名的自动映射功能,如果查询条件中使用了实体类中不存在的属性名,MyBatis-Plus会将其作为数据库字段名来进行查询。这样设置之后,在进行查询时就不会生成nonExistentProperty属性对应的数据库字段了。

2023-12-01 11:45:16 327 1

原创 基础数据结构----栈

栈的特点是“先进后出”。栈在生活中的原型有:坐电梯,先进电梯的被挤到最里面,只能最后出来;一管泡腾片,最先放入管子的药片位于最底层,最后被拿出来。栈只有唯一的出入口,从这个口进入,也从这个口弹出,这是它与队列的最大的区别。编程中常用的递归就是用栈来实现的,栈需要用空间存储,如果栈的深度太大,或者存进数组的栈太大,那么总会超过系统为栈分配的空间。就会爆栈导致栈溢出。这是递归的主要问题,递归深度需要注意。编码时通常直接用STL stack,或者自己手写栈。为了避免爆栈,需要控制栈的大小。

2023-11-30 19:48:58 452

原创 从pdf上复制下来的代码会报错?

会看到“-”和“-”有一点点小区别,前面的一个是英文类型,后面一个是中文类型,而且这个肉眼几乎看不出来,如果没有.md文件,在pdf里面的“-”全是中文的,如果是导入对应的pom.xml依赖,就会报错,IDEA会提示识别不了对应的依赖;总体上看没问题,但在运行时会找不到dubbo服务,这是为什么呢?如果不小心将英文“-”敲成了中文,那么redis服务不会启动,而且不会报错。

2023-11-30 15:38:47 128

原创 基础数据结构----单调队列与最大子序和问题

如果 s[ 1 ] > s[ 2 ],那么保持 ans = s[ 1 ]不变,然后从窗口中抛弃 s[ 1 ],只留下 s[ 2 ],因为后面再把新的 s[ i ’ ] - s[ 2 ] 比 s[ i ’ ] - s[ 1 ]更大(注意s为前缀和,s[ 1 ] > s[ 2] 实际上是 a[ 2 ]一定小于0,留下s[ 2 ]是为了跳过负数 a[ 2 ])(2)dp[ i ]包括多个元素,从前面某个a[ v ]开始,v < i,到a[ i ]结束,即dp[ i - 1] + a[ i ]。

2023-11-29 20:04:42 228 1

原创 关于scanf()的返回值

编程输出若干整数的和。输入格式 输入包括若干整数,以空格或回车分隔。所有测试数据中整数个数最少 1 个,最多不超过 100 个,所有整数的和不超出 int 型整数范围。输出格式 在一行中输出所有整数的和。在scanf原型中,会有一个int的返回,如果输入成功,则返回对应的输入个数,如果遇到“文件结束”,则会返回EOF。可以看到,利用scanf()返回值的特性,在纯C语言下也可以实现未知长度数据的输入。输入样例: 1 2 3 4 5 6 7 8 9 10。

2023-11-29 12:34:15 215 1

原创 C++中“++obj”和“obj++”的重载

在C++ 2.1及以后的版本中,C++编辑器可以通过在运算符函数参数表中是否插入关键字int来区分这两种方式。//友元函数重载,其中ob为X类对象的引用。我们知道,自增运算符“++”和自减运算符“--”放置在变量前面与后面,其作用是有区别的。//友元函数重载,其中ob为X类对象的引用。以上是++obj和obj++的例子,--obj和obj--也同理。

2023-11-28 23:26:28 56

原创 基础数据结构----单调队列与滑动窗口

如果他会魔法,他来排队时,队尾比他高的人就自动从队尾离开,新的队尾如果仍比他高,也会离开;他终于能看到菜了,让人兴奋的是,菜很好吃,所以他肯定不想走。不过,能不能看到和身高有关,站在队尾的人如果个子高,眼光就能越过前面的人看到里面的菜;假设每个新来的人的魔法本领都比队列中的人更高,这个队伍就会变成这样:每个新来的人都能排到队尾,但是都会被后面来的高个子赶走。下面举例描述算法流程,队列为{1,3,-1,-3,5,3,6,7},我们可以理解为身高。但是,让这个魔法纳闷的是,打饭阿姨一直忙自己的,顾不上打饭。

2023-11-28 23:01:53 170

原创 基础数据结构----双端队列和单调队列

前面我们写的队列都很“规矩”,队列的元素都是“先进先出”,队头只能弹出,队尾只能进入。双端队列是一种具有队列和栈性质的数据结构,他能在两端进行插入和删除,而且也只能在两端插入删除。其原理可以简单地概括为:序列中的n个元素,用单调队列处理时,每个元素只需要进出队列一次,复杂度为O(n)。单调队列中的元素是单调有序的,且元素在队列中的顺序和原来在序列中的顺序一致;(7)dq.push_front(e) :在队头添加一个元素 e。(1)dq[ i ] :返回队列中下标为 i 的元素。

2023-11-27 19:52:08 204 1

原创 基础数据结构----手写循环队列

这一节将给出循环队列的手写模板。我记得这个知识点在2023年上半年软考初级程序员中考过。代码中给出了静态分配空间和动态分配空间两种方式(动态分配写在注释中)。竞赛中一般用静态分配。

2023-11-27 09:11:50 37 1

原创 基础数据结构----STL queue

定义队列,Type为数据类型,如int、float、char等。下面是STL queue的写法,由于不用自己管理队列,代码很简洁。同时我们采用简易的哈希算法,提高效率。把item放入队列。返回队首元素,但不会删除。(4)q.pop();这一节主要讲解STL queue的用法和对应的例子。

2023-11-26 23:44:48 123 1

原创 基础数据结构----队列

循环队列是一种顺序表,使用一组连续的存储单元依次存放队列元素,用两个指针head和tail分别指示队头元素和队尾元素,当head和tail走到底时,下一步回到开始的位置,从而在这组连续空间内循环。如果不循环,head和tail都一直往前走,可能走到存储空间之外,导致溢出。队列中的数据存取方式是“先进先出”,只能向队尾插入数据,从队列头移动数据。队列的原型在生活中很常见,如食堂打饭的队伍,先到先服务。队列有两种实现方式:链队列和循环队列。这个队列不是循环的,tail可能超过N,导致溢出。

2023-11-26 21:21:47 30 1

空空如也

空空如也

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

TA关注的人

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