自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

发发的博客

Less is more.

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

原创 SpringBoot如何整合邮箱服务实现登录验证功能

SpringBoot如何整合邮箱服务实现登录验证功能

2022-06-15 09:40:53 2370 9

原创 解决Python中的TypeError list indices must be integers or slices, not float问题

写在前面今天再写一个Python小练习的时候,遇到了一个语法错误的问题TypeError list indices must be integers or slices, not float后来仔细分析了下,想起来了了Python中的 " / " 与 Java和C语言里的作用是不一样的,Python里是取到的小数,并非是整数如果想取整数,需要用 " // "而且列表里的下标索引是不允许为小数的,故出现了如上的语法问题练习代码"""计算数集中的中位数实训思路及步骤(1) sorted函数可对

2022-05-26 14:04:56 5591 1

原创 前端参数无法传递给后端,一直返回400

写在前面太久没写SpringBoot的代码了,最近一直在刷题和复习基础【IO,集合,反射,MySQL等】。但是,前两天突发奇想,想做一个关于某K歌平台歌曲免费导出的网站【当然还在思考和设计中。。。。。。】,然后就在我今天进行Swagger测试的时候意外发现歌曲的Uri死活传不到后端,一直返回400,于是在我的一通百度后,陷入了沉思……就在即将放弃的时候【主要是( ̄o ̄) . z Z】,我发现了规律,下面就有我来讲解一下我的解决方案吧 一、问题出现原因首先分析下我的歌曲Urihttps://kg

2022-05-21 01:06:52 4463

原创 如何在Centos下卸载OpenJDK,安装Oracle JDK

写在前面一般Linux系统都会自带JDK,只不过是Open JDk,而我们开发一般使用的是Oracle JDK,所以我们需要写在Open JDK,进而安装Oracle JDK一、卸载Open JDK一下操作需要在root权限下进行1、建议切换到root 账户# 切换到root账户su -2、查询系统是否以安装jdkrpm -qa|grep java3、卸载已安装的jdk# 温馨提示,文件名仅供参考,具体以自己的为准rpm -e --nodeps java-1.8.0-ope

2022-04-18 23:30:35 4149 1

原创 Git快速入门学习

1、为什么要使用Git学习git之前,我们需要先明白一个概念版本控制!什么是版本控制版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发追踪和记载一个或者多个文件的历史记录组织和保护你的源代码和文档统计工作量并行开发、提高开发效率跟踪记录整个软件的开发过程减轻开发人员的负担,节省时间,同时降低人为错误简单说就是用于管理多人协同开发项目的

2022-03-31 22:37:22 331

原创 如何使用PlantUML绘制类图

写在前面今天在学UML类图,然后我看人家都能画那个类图,感觉很好玩,所以我就百度了下,看看idea里有没有相关插件,虽然和想象的不太一样【我想要那种组件拖拽式的,结果是输入代码产生图片的】一、首先下载插件PlantUMLFile-> Settings->Plugins下载安装完,重启编译器即可!!!二、如何使用PlantUML创建类图创建关系的详细用法...

2022-03-16 21:16:54 1621

原创 04-代理模式

写在前面今天学习的是代理模式,依然是按照《大话设计模式》这本书来写的代理模式:为其他对象提供一种以代理来控制对这个对象的访问。在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。一、实际需求“娇娇同学,这是有人送你的礼物”,一个男生拿着一束花“戴笠同学,这是什么意思”娇娇看着这个同班的男同学“是这样的,我的朋友隔壁三班卓一航,让我代送个礼物”,戴笠有点脸红“为什么要送我礼物

2022-03-11 18:03:13 364

原创 如何通过XFTP传输文件到远程服务器

写在前面首先想问下,大家平时都是如何将文件传输到Linux里的呢?一般如果在VMware里的话,我会安装Vmtools使用拖拽的方式实现但是,远程云服务器呢???,这种方式显然行不通所以,我们需要用到XFTP这个工具来实现一、下载并安装工具个人使用的话,是免费的下载传送门然后你的邮箱就会收到下载的链接下载完成安装,即可二、创建连接会话先更改默认会话属性不然会出现乱码连接服务器传输文件 ...

2022-03-10 17:21:15 1973

原创 03-装饰者模式

写在前面今天学习的是装饰者模式那么什么是装饰模式呢?装饰模式: 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活一、具体问题搭建一个可以给人搭配不同服饰的穿衣系统,比如类似QQ秀或者厘米秀,QQ飞车人物装饰,你会怎么设计???直接写在一个类里??如果像上面的方式的话,确实可以实现功能【就是把穿各种衣服的方法写在这个人的类里】,但是这样耦合度太高,而且后期需要添加其他的装饰功能的话,就会更改Person,这不符合开放——封闭原则【对扩展开发,对修改关闭】

2022-03-09 23:53:01 162

原创 02-策略模式学习【策略和简单工厂的组合使用】

写在前面⭐️大三在校生发发,随时欢迎欢迎大家来交流!今天学习的是策略模式(Strategy Pattern),依然是参照《大话设计模式》这本书来写的一、什么是策略模式策略这个词应该怎么理解,打个比方说,我们出门的时候会选择不同的出行方式,比如骑自行车、坐公交、坐火车、坐飞机、坐火箭等等,这些出行方式,每一种都是一个策略。再比如我们去逛商场,商场现在正在搞活动,有打折的、有满减的、有返利的等等,其实不管商场如何进行促销,说到底都是一些算法,这些算法本身只是一种策略,并且这些算法是随时都可

2022-03-05 22:50:11 555

原创 Android Studio里一直显示loading devices并且Timed out attempting to connect to adb

写在前面最近在学安卓,其实挺不想学的【毕竟我还在考研和工作之间做抉择,而且我的方向也不是安卓=_=】,但是谁叫sb学校开了呢,而且还不让实习。。。。。那就先学学看吧,毕竟对安卓还是有些兴趣的然后,在搞这个Android Studio的时候,碰到了一个问题,就是一直在loading devices。。。。然后时间比较紧张,所以也就没找视频进行·系统性的学习·直接在网上找的解决方案【所以不一定是最优的,仅供参考】一、问题原因java.lang.RuntimeException: Unable to

2022-03-04 14:16:06 6400

原创 01简单工厂模式

对酒当歌,人生几何?

2022-03-01 17:30:31 141

原创 SQL异常Incorrect string value ‘xF0x9Fx92x94‘ for column ‘nick_name‘

写在前面今天,再做微信登录功能时,出现了java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94’ for column ‘nick_name’,后来仔细排查,发现我的微信昵称后面带有一个表情(占四个字节)而mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情,导致报错解决方案服务器端转换数据库存储编码数据库目前采用的编码为UTF8, 转换为可支持4个字节

2022-02-20 22:50:30 554

原创 如何整合腾讯云验证码服务到SpringBoot中并将验证码存到Redis中

写在前面⭐️一名在校的大三学生,欢迎交流指正~最近在做一个微服务的学习项目,需要用到阿里云的短信服务,然后跑去阿里云申请,发现个人用户无法申请???!需要企业认证然后,又听说联荣云可以,就赶快跑去申请,结果发现是一样的套路。。。。。。。。正在我打算放弃的时候,突然想到我在腾讯云有一个轻量级的服务器(已备案的),然后就又跑去腾讯云试了试,果然可以啊哈哈哈哈(前提是有已经备案的网站,或者小程序等),详情看图,而且初次使用可以获得200条短信(虽然只有3个月吧,但是测试绝对够用了)如果您和我

2022-02-19 12:25:17 838

原创 【远程连接MySQL 】 云服务器mysql访问慢【速度较慢】

写在前面前端请求后端数据的时候,总是会超时,有时候使用Navicat刷新远程数据库的时候,也会卡很久,就是卡在一个空白界面,于是我就怀疑是数据库(Mysql)的问题果然在我的一番百度下,终于找到了答案【嘻嘻】如何解决方式一:使用命令行linux服务器环境下修改 /etc/my.cnf 文件在 [mysqld]下面加入 下面这句配置skip-name-resolve方式二:使用宝塔在 [mysqld]下面加入 下面这句配置skip-name-resolve两种方式没区别

2022-02-08 12:20:02 2055 3

原创 拦截器、过滤器、AOP的区别和联系

写在前面今天,和一位前辈聊了聊实习的事,关于java后端开发的几个问题,真的是被虐的很惨啊(理解和能讲明白完全就是两回事啊)其中,最沙雕的是,我竟然单纯的以为过滤器(Filter)和 拦截器(Interceptor)是一个东西,然后前辈当场就diss我一顿后来我回家翻了翻笔记发现我在学SpringMVC的时候是有学过拦截器的(还注明了重点两个字),还将其应用到了登录验证功能上后来我反思了下,SSM学完后,直接做了一个书店系统(很简单的CRUD)就结束了,然后就直接SpringBoot了,在里面是

2022-02-04 21:34:43 5709 5

原创 idea如何设置背景图

写在前面作为一个Java开发者,我想大家肯定都知道IDEA这个编译器吧,但是idea默认的背景并不是很美观(应该说很丑,个人感觉哈)那么如何更换背景呢(此方法同样适用于Pycharm,社区版和商业版通用)一、需要准备什么一张精美的背景图(你懂得)还有就是一颗能看完这篇博客的耐心(嘿嘿)二、如何进行更换主题和背景图更换背景图IDEA默认背景图应该是白色的,不过我个人觉得黑色比较专注,所以就改成黑色了更改步骤如下:Tips:相关按钮在idea最左上角File(文件) -&gt

2022-02-03 18:09:03 25209 15

原创 SpringBoot中如何进行统一异常处理

如何在SpringBoot项目里进行统一异常处理需要了解的知识@ControllerAdvice的作用1、处理前异常代码/** * 根据id获取医院设置 * * @param id 查看的id编号 * @return */@ApiOperation(value = "根据id获取医院设置")@GetMapping("/findHospById/{id}")public Result findHospById(@PathVariable L

2022-02-02 22:04:40 8586 12

原创 dependencyManagement 里面的依赖无法下载

问题今天跟着做了一个项目(微服务的),自以为很了解maven,我就直接把依赖copy过来了,结果发现总是有一部分依赖无法下载完成,一开始我以为是网的问题,或者是没有切换到阿里云的镜像,后来等了好久也没反应,查了百度才知道结果原因原来<dependencyManagement>只是用于父工程管理依赖的,用于统一管理jar的版本。子工程需要使用相应的jar引入依赖即可,这时才真正的使用到相应jar,才会去下载。解决办法方案一:先把这对标签注释掉或者去掉,就可以下载了,下载.

2022-01-31 20:53:26 1305 5

原创 Mybatis-Plus入门学习

Mybatis-Plus学习一、简介MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。润物无声只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。效率至上只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间。丰富功能热加载、代码生成、分页、性能分析等功能一应俱全。二、创建并初始化数据库2.1、创建数据库mybatis_plus2.2、创建user表其对应的数据库 Sche

2022-01-30 20:58:24 276

原创 Day24堆排序

一、什么是堆排序简介基本思想二、堆排序步骤演示步骤一 构造初始堆。将给定无序序列构造成一个大顶堆(一般升序采用大顶堆,降序采用小顶堆)。.假设给定无序序列结构如下.此时我们从最后一个非叶子结点开始(叶结点自然不用调整,第一个非叶子结点 arr.length/2-1=5/2-1=1,也就是下面的6结点),从左至右,从下至上进行调整。.找到第二个非叶节点4,由于[4,9,8]中9元素最大,4和9交换。这时,交换导致了子根[4,5,6]结构混乱,继续调整,[4,

2022-01-26 21:45:46 115

原创 Day23线索化二叉树

一、什么是线索化二叉树?基本介绍1)n个结点的二叉链表中含有n+1 【公式 2n-(n-1)=n+1】 个空指针域。利用二叉链表中的空指针域,存放指向该结点在某种遍历次序下的前驱和后继结点的指针(这种附加的指针称为"线索")2)这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种3)一个结点的前一个结点,称为前驱结点4)一个结点的后一个结点,称为后继

2022-01-24 22:43:18 224

原创 Day22顺序存储二叉树

一、什么是顺序存储二叉树基本说明特点其实说白了就是把数组里的数据以二叉树的形式遍历出来(前序、中序、后序)二、代码实现顺序存储二叉树要求代码实现package com.fafa.tree;/** * 顺序存储二叉树(数组转成二叉树) * * @author Sire * @version 1.0 * @date 2022-01-23 20:37 */public class ArrBinaryTreeDemo { public static

2022-01-24 22:42:33 357

原创 关于idea报错cannot access class

关于idea报错"cannot access class "代码在eclipse里是没问题的,在idea里也可以正常运行,但是就是爆红,显示 cannot access XXXX class,强迫症的我怎么能忍???!解决方案方案一:重启idea(如果不行,就用方案二)方案二:重启无效果,File -> Invalidate Caches -> Invalidate and Restart!642920004647)]!...

2022-01-23 14:41:53 680

原创 Day21二叉树快速入门学习(Java)

一、为什么要使用树这种数据结构1)数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 [示意图]2)链式存储方式的分析优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可, 删除效率也很好)。缺点:在进行检索时,效率仍然较低,比如(检索某个值,需要从头节点开始遍历) 【示意图】3)树存储方式的分析能提高数据存储,读取的效率, 比

2022-01-23 14:39:55 555

原创 Day20哈希表

一、什么是哈希表二、需求场景google公司的一个上机题:有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,名字,住址…),当输入该员工的id时**,**要求查找到该员工的所有信息.要求不使用数据库,速度越快越好 => 哈希表(散列)添加时,保证按照id从低到高插入 [课后思考:如果id不是从 **低到高插入,但要求各条链表仍是从低到高,怎么解决?]使用链表来实现哈希表, 该链表不带表头[即: 链表的第一个结点就存放雇员信息]2)思路分析并画

2022-01-21 22:40:49 1129

原创 Day19四种查找算法(线性、二分、插值、斐波那契)

一、线性查找思路很简单,就是遍历一遍然后从中比对代码实现package com.fafa.search;import java.util.ArrayList;import java.util.List;/** * 线性查找 * * @author Sire * @version 1.0 * @date 2022-01-18 14:14 */public class SeqSearch { public static void main(String[] arg

2022-01-20 23:23:48 513

原创 Day18基数排序

一、什么是基数排序1)基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用2)基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法3)基数排序(Radix Sort)是**桶排序**的扩展4)基数排序是1887年赫尔曼·何乐礼发明的。它是这样实现的:将整数按位数切割成不同的数字,然后按每个位数分别比较。二

2022-01-17 21:14:46 156 3

原创 Day17归并排序

一、什么是归并排序归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治**(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治**(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。二、归并排序思想示意图一共需要合并 nums.length - 1次,带入到此图中就是 7 次就拿 4 5 7 8这组和 1 2 3 6这组的合并举例说明合并过程(也就是最后一次合并)三、代码实现pa

2022-01-15 22:04:41 234

原创 Day16快速排序及其优化

一、什么是快速排序快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列效率上来讲,一般情况下是和希尔排序差不多的(结尾有对比图,快速排序更适合数据量大的情况下使用,越大越能体现其优势),当然快排的快是以空间换时间得来的(递归)。二、快速排序示意图三、代码实现package com.fa

2022-01-15 15:33:01 126

原创 Day15希尔排序及其优化

一、为什么要学希尔排序因为简单插入排序存在一些问题我们看简单的插入排序可能存在的问题.数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的过程是:{2,3,4,5,6,6}{2,3,4,5,5,6}{2,3,4,4,5,6}{2,3,3,4,5,6}{2,2,3,4,5,6}{1,2,3,4,5,6}结论: 当需要插入的数是较小的数时,后移的次数明显增多,对效率有影响.二、什么是希尔排序希尔排序是希尔(Donald Shell)于1959年提出的一种排

2022-01-14 16:25:21 347

原创 Day14插入排序及其小优化

一、插入排序简介介绍插入排序属于内部排序算法,是对预排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。排序思想插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。思路图二、具体实现及优化(小优化)流程演示本来的顺

2022-01-13 14:16:56 326

原创 Day13选择排序优化

选择排序简介选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。选择排序思路分析图如何优化选择排序思路建议在一定数据量的情况下查看效果,比如排序80000个随机数据,会比未优化的快很多(效果很明显)因为减少了很多没必要的置换,未优化前的选择,其实和冒泡很相似(只不过冒泡是先把后面的排好,选择是先把前面的排好)选择排序(已优化)* 思路:* 1、首先,先假定最小值和最小值的下标索引* 2、然后进行寻找,如果找到比最小值还要小的,

2022-01-12 21:20:25 246

原创 Day12冒泡排序优化

简写

2022-01-11 22:17:11 362

原创 Day11如何衡量算法的时间复杂度和空间复杂度

一、排序算法的介绍简介排序也称排序算法 (Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类:内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。常见的排序算法分类(见下图):二、算法的时间复杂度1、度量一个程序(算法)执行时间的两种方法1)事后统计的方法这种方法可行, 但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序

2022-01-11 18:27:51 3605

原创 Navicat如何连接远程服务器的MySQL

前言:运行环境及工具Navicat for Mysql腾讯云轻量级服务器一台(Centos 7)Mysql 8.0.24(远程服务器内安装的)Xshell7(连接操作远程服务器)一、修改mysql的远程授权登录设置1、登录远程服务器的数据库(使用Xshell)mysql -uroot -p ## 以root登录数据库 输入root的登录密码,成功后会看到以下信息:2、查看mysql服务当前的默认端口use mysql; ## 选择mysql数据库

2022-01-10 22:28:44 27413 4

原创 Day10八皇后问题

一、八皇后问题简介八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。二、八皇后问题算法思路分析(回溯算法)1)第一个皇后先放第一行第一列2)第二个皇后放在第二行第一列、然后判断是否OK, 如果不OK,继续放在第二列、第三列、依次把所有列都放完,找到一个合适3)继续第三个皇后,还是第一列、第二列……直到第8个皇后也

2022-01-09 20:08:57 455

原创 Day09递归介绍和简单迷宫问题

一、递归(Recursion)1、递归简介简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量**.**递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。2、递归可以解决什么问题1)各种数学问题如: 8皇后问题 , 汉诺塔, 阶乘问题, 迷宫问题, 球和篮子的问题(google编程大赛)2)各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治算法等.3)将用栈解决的问题–>递归代码比较简洁3、递归需要遵守的重要规则1)执行一个方法时,就创建一个新的受保护的独立空

2022-01-08 21:45:58 361

原创 Day08栈的简单应用之计算器(逆波兰表达式)

一、中缀表达式实现计算器1、思路通过一个index值(索引),来遍历我们的表达式如果发现是数字,就直接进数栈如果是运算符,就直接进符号栈如果当前符号栈为空,则直接入栈如果符号栈里有操作符,需要进行判断,如果栈内操作符优先级大于或者等于当前操作符, 则pop出符号栈有一个元素,同时pop出数字栈内两个元素,三个元素进行运算,结果返回数字栈,当前操作符入字符栈,反之,当前操作符则直接进入符号栈表达式扫描完毕(index >= expression.length()),就按照顺序从数栈和符号

2022-01-07 15:12:09 559

原创 Day07栈的快速入门(数组加单链表)

一、栈的简介1、栈的英文为(stack)2、栈是一个先入后出(FILO-First In Last Out)的有序列表。3、栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。4、根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除5、出栈(pop)和入栈(push)的概念(如图所示

2022-01-05 17:32:49 209

空空如也

空空如也

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

TA关注的人

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