自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通俗易懂【Springboot】 单文件下载和批量下载(多个文件合成一个压缩包下载)

文件下载,是从服务器下载到本地电脑。文件下载的原理,首先通过IO流将服务器的文件读取到内存里(只有将数据读到内存,电脑才可以操作数据),读取后文件数据存放在内存中,将内存中的数据通过网络发送给本地客户端的浏览器。本地客户端的浏览器接受数据,并在本地生成对应的文件。

2023-03-27 18:04:07 8725 2

原创 理解并解决【跨域】问题--通过代理或【CROS】

是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。,端口不同)的服务器,只需要请求相同的源的服务器就可以解决这个问题,这就用到了代理,所有请求都请求相同的。,对于部分请求(主要是获取静态资源的,不涉及跨域问题)直接返回对应资源,对于涉及跨域的请求,让。既然跨域浏览器不允许,那就直接告诉浏览器允许跨域----后端接口允许跨域,也可以解决跨域问题。这样解决了跨域问题问题。

2023-03-10 23:53:52 1613

原创 springboot整合websocket,启动时报错,java.lang.IllegalArgumentException: Path must start with ‘/‘和A parameter

中文翻译:类型为[class java.lang]的参数。在类[java.lang.reflect]的方法[onError]上找到String]。方法]中没有@PathParam注释。错误一:java.lang.IllegalArgumentException: Path must start with '/'@ServerEndpoint注解中的路径必须加斜杆("/websocker/order/{userId}")直接把onError注释掉,然后可以正确启动。写正确的onError方法。

2023-03-09 23:02:24 2481

原创 【vue3】ref , reactive ,toRef ,toRefs 使用和理解

【vue3】ref , reactive ,toRef ,toRefs 使用和理解,使用`ref` 和 `reactive` 实现双向数据绑定

2023-02-24 16:58:10 913

原创 马走日--dfs

马在中国象棋以日字形规则移动。请编写一段程序,给定 n∗m 大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。输入格式 第一行为整数 T,表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标 n,m,x,y。输出格式 每组测试数据包含一行,为一个整数,表示马能遍历棋盘的途径总数,若无法遍历棋盘上的所有点则输出 0。

2023-01-10 00:29:15 498

原创 迷宫--dfs解法以及迷宫问题要不要回溯

同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由 n∗n 的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。再接下来一行是 4 个整数 ha,la,hb,lb,描述 A 处在第 ha 行, 第 la 列,B 处在第 hb 行, 第 lb 列。能办到则输出“YES”,否则输出“NO”。

2022-12-14 00:11:17 790

原创 mysql 学习---窗口函数

或。

2022-12-13 20:49:55 453

原创 mysql学习---流程控制函数(条件判断)case when ,if使用

解释:如果value的结果为true ,返回value1,否则返回value2select if(1>0,'正确','错误')->正确解释:如果value为空,返回value2,否则返回value1->hellowcase when 条件1 then 结果1 when 条件2 then 结果2 else 结果3 end解释:相当于if else if else例如,根据成绩grade字段判断是否良好。

2022-12-13 00:39:56 433

原创 spring boot 启动报错---java: 无法访问org.springframework.boot.SpringApplication 错误的类文件:

例如 spring boot 3.0 与jdk17 或 spring boot 2.7.1 和 jdk 8(只要不是3.0都可以)spring boot 版本默认3.0,同时jdk选择的是 8。spring boot 3.0 只支持jdk 17。spring boot 版本和jdk统一。spring boot 3.0发布了。,在平时创建时,都喜欢使用jdk8。,在创建项目时,默认为3.0。直接在pom文件上改。,修改完成之后,必须。

2022-12-12 15:20:09 13615 4

原创 mysql学习-- 聚合函数,group by理解与使用

例如,查询公司每个部门的最高工资解决办法,(1)select 函数 from 表 where 部门这只能获取一条数据(或一个部门的最高工资)(2)分析上述问题,实际上是将公司所有员工这个整体按部门分组 ,然后对每一组求最高工资,每一组就是一条数据然后打印出来聚合函数就是为了解决上述问题(,解释,

2022-12-11 00:01:52 1560

原创 辨别代码能否引发线程安全问题--避免在平时写代码时引发线程安全问题

总之,线程安全问题最终还是会回到是否共享的,但是是否共享是一个很宽泛的概念,包含了很多情况,在很多时候可能并不会注意到,通过这篇文章呢可以帮助我们在平时写程序的时候对于线程安全问题有明显的感知。

2022-11-23 01:08:21 194

原创 解决BUG:Incorrect string value: ‘\xAC\xED\x00\x05~r...‘ for column ‘XX‘ at row 1 Query

错误信息:Incorrect string value: '\xAC\xED\x00\x05~r...'我的一个报错是因为将JSONObject对象插入text类型(实际上需要String)的字段.需要去比对代码中要插入的值的类型,与表定义时字段的类型差别。at row 1 Query中定位到了具体列,只。要插入的值的类型,与表结构中的字段类型不一样。错误分析: 这是一个。

2022-10-26 15:19:16 2642

原创 链表讲解--java版本,概念,和常见算法题

努力是为了不平庸~算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算法的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~

2022-10-23 17:56:26 345

原创 读书笔记 -- 算法入门

数据结构是非常重要的课程,大公司要求面试者有非常扎实的数据结构与算法能力。扎实到什么地步呢?下面是相关面试题: 1.我们通常将算法与数据结构放在一起提及,说说算法和数据结构的区别?2.对于时间复杂度是怎么理解和计算的?3. 快排的思想与复杂度是怎么计算的?从上述问题可知,这个“扎实”真的是太扎实了!对于这门课,概念,思想,代码实战都需要非常熟练,

2022-10-19 09:11:09 318

原创 快速上手RedisTemplate

前景提要:这篇文章可以e,并,如果想要了解API的,可以去看一下API文档,或者用到具体的方法在Idea里,直接点进去RedisTemplate源码,找需要的方法。

2022-10-18 01:10:50 1124

原创 学会使用ssh,scp,ftp

什么时候要使用ssh?ssh,从一台服务器登录到另一台服务器在Linux下输入命令`ssh user@hostname如果是在windows下如何找到输入命令的地址呢?使用ssh登陆后,会在~/.ssh/knownhost文件下记录对应的服务器信息默认登陆的端口号是22,登录特定端口号。

2022-09-27 09:47:47 533

原创 圾收集器与内存分配策略

使用句柄:java堆划出一块内存来作为句柄池,句柄池存放一个个句柄,每个句柄中包含了对象实例数据与类型数据各自的具体地址信息,reference引用中存放的是对象的句柄地址。指针碰撞:所有被使用过的内存放在一边,空闲的内存放在另一边,中间有一个指针作为分界点的指示器,分配内存的过程就是向空闲方向挪动一段与对象所需内存大小相等的距离。对象的访问是非常频繁的,所以这个额外的成本是非常可观的。使用直接指针,reference存储的 是对象的实例数据的地址,对象实例数据存放了到对象类型的指针。

2022-09-26 18:00:30 411

原创 带你走进并发编程的世界

串行,两个程序,这两个程序必须要严格按顺序执行,一个程序执行完才能执行另一个,这是串行。并行,也是两个程序,在之执行第一个程序的同时执行第二个程序,由于要同时所以需要两个CPU。并发,执行第一个程序,执行到一半,然后执行第二个程序,不断的切换直到只想完,这是并发,一个CPU就可以。上面的理解只是一部分情况,要是细扣的话有点片面比如:单核CPU上面也可以并行执行多个进程,进程A设计逻辑器件组1,进程B设计逻辑器件组2(不涉及被占用的逻辑器件指令)完全可以同时执行。JUC线程池(

2022-09-26 00:31:59 294

原创 认识常见的编码知识(Unicode,GBK,utf-8,utf-16)

刚开始unicode收录字符并不多,2个字节完全可以表示,随着unicode收录字符越来越多,超过的部分只能用2个char表示(utf-16),utf-16兼容使用char为2字节的编码方式。* UTF-8,0-127号字符使用和ASCII相同的编码,128以上 的采用2,3,4个字节表示,他是一个可变长度的编码方式,优势是包罗万象,劣势是浪费空间,utf-8是一编码规则。1) 1个字节(8位),组合出256种状态,局限是只能显示字母数字,英式标点符号,适用于美国英语,对其它语言无能为力。

2022-09-21 11:32:50 570

原创 一起掌握String的用法

使用Stringformat拼接字符串(1)String.format()用法String s=”小超是个%S!”;String s=String.format(s,”帅哥”);//s实际为小超是个帅哥!(2)需求:url需要拼接多个参数,url可能很长”);使用+拼接使用String.format()函数(可读性增强,推荐这种用法,面试的时候可能问到直接回答String.format)注意:不要再for循环中使用,执行效率不如+,

2022-09-16 11:20:35 308

原创 HttpClient发送json格式的报文乱码--花费我两天的BUG

charset:utf-8 改成 charset=utf-8。2.遇到的错误---发post请求,请求参数乱码。(2)改进的正确写法。

2022-09-15 19:21:22 464

原创 编程遇到的错误--java: 错误: 无效的源发行版:18--亲测有效

4.如果还是显示 无效的源发行版:18,只能说明。这样的话99.99999%会解决大部分问题。将上述地方改成相同JDK。Maven上的依赖不对。

2022-08-21 09:32:38 33346 13

原创 链表中环的入口结点

题意给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围n\le10000n≤10000,1

2022-08-02 09:37:26 188

原创 JWT(令牌)

是一个开放标准,定义了一个紧凑,自包含方式,用于在各方之间以。进行签名,可以确保发件人是我们所认为的人,保证内容不被篡改。对象安全的传输信息(是数字签名的,可以验证信任)。是在各方安全信息传递的好方法。......

2022-08-01 22:31:55 185

原创 格子游戏(并查集)

一共输出nn行数据,每行有一个小于等于66的整数,它表示对于输入数据中对应的游戏状态最少需要几步才能使所有灯变亮。游戏者改变一个灯的状态会产生连锁反应和这个灯上下左右相邻的灯也要相应地改变其状态。给定一些游戏的初始状态,编写程序判断游戏者是否可能在66步以内使所有的灯都变亮。对于某一个游戏初始状态,若66步以内无法使所有灯变亮,则输出−1−1。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。每组数据描述了一个游戏的初始状态。各组数据间用一个空行分隔。.........

2022-08-01 19:58:40 160

原创 MySQL索引详解

聚集索引(clusteredindex),只有一个,必须有,将数据存储与索引放在一起,索引的叶子节点存放行数据。二级索引(Secondaryindex),可以有多个,分开存储,索引的叶子节点存储的是对应的主键。采用hash算法,将key转换成hash值,映射到对应的哈希表中,传哈希冲突,使用链表解决。没有主键,唯一索引,InnoDB会自动生成rowid作为隐藏的聚集索引。......

2022-07-31 19:34:30 251

原创 二叉树的简单编程题--二叉树深度,镜像,对称,判断等

可以使用递归完成,首先当节点为空returnfalse,当一个节点的左子树和右子树都为空说明是叶子节点,叶子节点的路径值等于sum则returntrue,最后只需判断叶子节点是否有true,有答案为true,否则为false.给定一个二叉树root和一个值sum,判断是否有从根节点到叶子节点的节点值之和等于sum的路径。深度是指树的根节点到任一叶子节点路径上节点的数量。3.路径只能从父节点到子节点,不能从子节点到父节点。...

2022-07-29 20:39:12 109

原创 Java基础面试题

总结,使用C做项目(类似五子棋,管理系统),可能所有的代码全部在一个文件里,让代码有效复用的手段是由将片段代码变成函数,这样的话还是繁琐,将项目的一部分代码抽象成类,类之间处理使用继承,多态等,代码实现逻辑不变,这样易于理解,扩展。JREJava运行环境,运行已经编译的程序所需内容的集合,包含Java虚拟机,Java类库和其他基础构件,但不能创建Java程序。平台无关性(Java虚拟机),面向对象(封装,继承,多态),可靠性,安全性,支持多线程,支持网络编程,编译与解释并存。.........

2022-07-20 15:46:24 207

原创 二维数组中的查找

题意:示例:题解:解法一(多次二分查找)由于数组的每一行是递增的,可以逐行进行二分查找。解法二(二维的二分查找)解法三(利用数组的性质)对于数组的任何一个数字i,可以发现数组左边或上面的数字都小于i,下面或右面的数组元素都大于i,但是如果从数组的右上角(或左下角)为起始条件,可以发现数组左边元素都小于i,下面的元素大于i,这样的话就可以进行二分。...

2022-07-11 12:59:50 250

原创 常用的类的API使用(集合,string,random,Collections)

Random类是一个随机数产生器,随机数是按照某种算法产生的,一旦用一个初值创建Random对象,就可以得到一系列的随机数.Random类导入包:java.util.Random构造方法使用(获取随机数)具体使用方法:random.nextXXX();//XXX是 Long,Int,Boolean,Double等可以获得对应数据类型的随机数。是线程安全的。 但是,跨线程的同时使用实例可能会遇到争用,从而导致性能下降。 在多线程设计中考虑使用API文档:可调整大小的数组的实现List接口。 实现所

2022-07-08 20:40:13 135

原创 redis的设计与实现--简单动态字符串

redis的类型与编码: 使用redis命令查看类型和编码简单动态字符串简单动态字符串是redis定义的一种数据类型。在redis中包含字符串的键值对在底层都是都是SDS实现的。首先redis使用c编写的,为什么不用c中原生字符串?1.获取长度的复杂度高,c语言中,字符串是通过char数组实现,本身不记录自身长度,获取长度为O(n),(使用sds是O(1),保证获取字符串的工作不会成为redis的瓶颈)2.内存分配十分繁琐,几乎每次修改字符串,程序就会重新分配内存。,(使用sds后可以减少内存重新分配

2022-07-08 17:44:25 355

原创 Jedis实现抽奖功能

实现抽奖功能的具体思想:使用客户端jedis连接到redis,使用redis中的set数据类型,set数据类型不可重复的,保证了参加抽奖的人的唯一性。pop()时得到的数据是随机的不固定的,所以使用redis中set数据类型实现了抽奖功能。1.创建maven工程2.引入依赖3.新建util包,创建JedisFactory类主要是配置线程池的参数,可以通过JedisFactory获得jedis连接3.创建service,具体实现逻辑测试类......

2022-07-08 14:58:38 369

原创 装箱问题(01背包模型)

题意:示例:输入样例:输出样例: 题解:解法一:二维动态规划首先理解题意,题目要求剩余空间最小,则要求物品组成的空间和最大,但同时不超过箱子,可以将物品的体积看作价值,只不过价值等于体积,这样就是价值等于体积的01背包模型。dp[i][j]:前i个物品,容量为j时,可以得到的最大值。状态转移方程:dp[i][j]=max(dp[i][j],dp[i-1][j-a[i]]+a[i]);解法二,一维的动态规划思想是相同的,只是为了节省空间dp[j]:容量为j的时候,拥有的最大价值状态转移方程:dp[

2022-07-07 19:14:01 545

原创 idea中遇到的maven异常Could not find artifact org.apache

1.原因找不到对应的jar包,有两种情况,一是无法下载对应jar包,二是maven中的坐标写错,我则是没有写版本号。具体错误信息:

2022-07-05 09:30:53 11293

原创 springboot使用mybatis-plus代码生成器生成代码

1.创建springboot项目2.引入依赖3.resources目录下创建文件 application.properties4.创建MP代码生成器在test目录下,打包的时候test目录下的不包含,不需要把代码生成器打包进项目,只在开发时候使用。创建 CodeGenerator类5.执行main方法...

2022-07-01 22:12:08 370

原创 二叉树的前,中,后序遍历

题意:示例:题解:前序是根左右,中序是左根右,后序是左右根1.递归写法2.非递归写法,是用栈模拟函数递归调用的过程。

2022-07-01 19:50:44 153

原创 SSM相关面试题(day3)

1.相关知识:@ModelAttribute注解作用:1.用在方法的参数上注解在参数上,会将客户端传递过来的参数按名称注入到指定对象中,并且会将这个对象自动加入ModelMap中 2.用在Controller的方法上注解在方法上,会在每一个@RequestMapping标注的方法前执行,如果有返回值,则自动将该返回值加入到ModelMap中2.springMVC数据校验相关知识:Spring MVC 提供了两种数据校验的组件: Hibernate Validator,通过注解完成校验规则的绑定。3.相关

2022-06-29 01:34:15 95

原创 详解:short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

前置知识 数据类型转换 自动转换(隐式):当数据类型不一样将发生自动类型转换,要求小范围到到大范围。 强制类型转换(显式):从大范围到小范围,格式 int a=(int)5L;可能会丢失精度。 面试题:short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 首先short s1 = 1; s1 = s1 + 1;会报类型转换的错误,Java中整数默认为int类型,int->short是大范围到小范围,无

2022-06-28 12:16:54 1068

原创 分糖果问题

题意:示例:题解:首先给有人分1个糖果,其次正向遍历,如果分数大于前一个人,则糖果数为前一个人的糖果数+1,但无法保证当前拥有的糖果数和后一个人的糖果数满足要求,所以逆向遍历,如果分数大于后一个人且糖果数小于等于后一个人的糖果数,则糖果数为后一人的糖果数+1......

2022-06-27 12:39:21 343

原创 删除有序链表中重复的元素-II

题意:示例:题解:由于需要删除所有重复节点,包括第一个出现的节点,所以引入新节点作为头节点,对于每个节点i,往后遍历找到与节点i不相等的节点j,通过判断节点i,j位置看i节点是否重复,如果重复,i节点的上一个节点pre直接指向j节点,舍弃掉重复节点。...

2022-06-27 12:04:35 135

空空如也

空空如也

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

TA关注的人

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