自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何判断时间是否在跨天的时间段之内

如何判断时间是否在跨天的时间段之内

2022-07-20 21:24:41 1339 1

原创 经典面试题-volatile的作用

volatile的作用

2022-07-20 08:02:41 240

原创 经典面试题-lock与synchronized异同点

lock 与synchronized异同点

2022-07-20 07:48:10 420

原创 经典面试题-wait vs sleep

多线程中的wait和sleep有何异同点

2022-07-18 21:52:42 578

原创 经典面试题-线程池七大参数

线程池七大参数

2022-07-18 21:31:09 2808

原创 经典面试题-线程状态

线程状态、java线程状态、操作系统线程状态

2022-07-18 20:57:52 209

原创 经典面试题-详解单例模式

详解设计模式、双重校验锁(DCL)、volatile关键字的作用

2022-07-17 18:17:33 683

原创 postman中如何显示返回的base64图片验证码

postman中如何显示返回的base64图片验证码

2022-07-01 23:22:37 3606 1

原创 如何通过java8Stream给三级菜单分类

Stream流实现菜单的三级分类

2022-07-01 23:15:46 730

原创 跨域以及后端如何解决跨域

跨域以及后端如何解决跨域

2022-06-14 08:07:39 338

原创 rabbitmq报错:inequivalent arg ‘durable‘ for queue ‘ack_queue‘ in vhost ‘/‘: received ‘true‘ but curren

rabbitmq报如下错误Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'ack_queue' in vhost '/': received 'true

2021-07-25 21:42:13 2535

原创 centos7安装erlang以及rabbitmq

centos7安装erlang以及rabbitmq一、安装erlang环境erlang下载地址安装命令:rpm -ivh erlang-21.3-1.el7.x86_64.rpm(直接安装erlang环境,i表示install,vh表示显示安装进度)但是直接安装可能出现:出现以上错误需要先安装相关依赖: yum install epel-release yum install unixODBC unixODBC-devel wxBase wxGTK SDL wxGTK-gl

2021-07-15 23:21:11 696 1

原创 springboot中配置文件的位置

springboot中配置文件的位置1.springboot配置文件的位置springboot中的配置文件有两种配置文件,一种是properties,一种是yml,这两种配置文件如果不冲突的话,则互相补充,如果冲突的话则properties配置文件的优先级更高。这两种配置文件存放的位置一共有四种:项目根目录下的config/application.properties项目根目录下的application.properties项目resources目录下的config/application.p

2021-05-18 21:58:02 3896

原创 springboot中使用短命令行参数

springboot中使用短命令行参数项目打包之后在命令行中可以使用java -jar mybatismulti-0.0.1-SNAPSHOT.jar来启动运行,默认端口是8080,如果想自己指定端口的话则使用java -jar mybatismulti-0.0.1-SNAPSHOT.jar --server.port=8081命令来启动。如果嫌后面跟着的参数长了,可以在applicaton.properties中添加server.port=${port:8888}配置,则可以通过java -jar my

2021-05-18 07:37:48 174

原创 Mybatis配置多数据源

mybatis多数据源相关代码如下:application.properties:#spring.datasource.username=root#spring.datasource.password=12345#spring.datasource.jdbcUrl=jdbc:mysql://localhost:3306/test01?userUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai#默认的数

2021-05-18 07:18:45 1854

原创 springboot实现系统启动任务

springboot实现系统启动任务1.什么是系统启动任务系统启动任务就是当项目启动的时候能够执行的东西就是系统启动任务,即随着项目启动而执行的。如果是ssm项目一般可以通过自定义listener监听器实现,监听servletContext的启动然后做一些初始化的操作;springboot中也可以这么做,但是也有自己的方案即CommandLineRunner和ApplicationRunner来实现。2.CommandLineRunner实现系统启动任务首先自定一个类实现CommandLineRun

2021-05-15 16:58:24 237 1

原创 springboot整合mybatis注解版和xml版

springboot整合mybatis注解版和xml版1、新建springboot项目注:mybatis中引入了spring_data_jdbcsql/*Navicat MySQL Data TransferSource Server : 本地Source Server Version : 50528Source Host : 127.0.0.1:3306Source Database : restful_crudTa

2020-12-22 22:50:25 220 1

原创 springboot与jdbc数据访问

springboot与jdbc数据访问1、springboot与JDBC(1)、 pom.xml<!--jdbc相关--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dep

2020-12-10 00:30:03 374

原创 echarts折线图多条折线怎么每段显示不同的颜色?

option = { title: { text: '一天用电量分布', subtext: '纯属虚构' }, tooltip: { trigger: 'axis', axisPointer: { type: 'cross' } }, toolbox: { show: true, feature: { save

2020-12-03 11:07:33 6223

原创 怎么给docker配置阿里云的源?

sudo mkdir -p /etc/docker # 创建目录/etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://10c3pvm2.mirror.aliyuncs.com"]}EOF # 通过daemon.json文件来加速,其中"registry-mirrors"是一个数组,可以配置多个镜像源地址。sudo systemctl daem

2020-12-02 22:51:22 203

原创 springboot配置嵌入式Servlet容器

springboot配置嵌入式Servlet容器1、springboot 默认使用tomcat作为嵌入式servlet容器2、如何定制和修改Servlet容器的相关配置1)修改配置文件的方式,来修改Servlet容器的配置//通用的Servlet容器设置:server.xxxserver.port=8081server.servlet.context-path=/crud//Tomcat的设置: server.tomcat.xxxserver.tomcat.uri-encoding=ut

2020-11-29 16:41:09 257

原创 springboot错误处理机制原理以及自定义异常处理

springboot错误处理原理以及自定义异常处理1.springboot默认错误处理机制1.1浏览器:默认返回一个错误界面1.2其他客户端:默认返回json数据2.springboot异常处理原理ErrorMvcAutoConfiguration 这个和错误有关的自动配置类给容器中注入了几个组件:DefaultErrorAttributes、BasicErrorController、ErrorPageCustomizer、DefaultErrorViewResolver1.Defaul

2020-11-25 22:50:15 841

原创 Spring Boot入门

1. Spring Boot概述1.1. 什么是Spring Boot一般把Spring Boot称为搭建程序的脚手架 或者说是便捷搭建 基于Spring的工程 脚手架。其最主要作用就是帮助开发人员快速的构建庞大的spring项目,并且尽可能的减少一切xml配置,做到开箱即用,迅速上手,让开发人员关注业务而非配置。1.2. 为什么要学习Spring Bootjava一直被人诟病的一点就是臃肿、麻烦。当我们还在辛苦的搭建项目时,可能Python程序员已经把功能写好了,究其原因注意是两点:复杂的配

2020-10-08 23:16:02 448

原创 Git的使用

Git使用1.SVN和Git的区别(1)SVNSVN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。缺点:服务器单点故障,容错性差(2)GitGit是分布式版本控制系统(Distributed Version Control System,简称 DVCS) ,分为两种类型的仓库:本地仓库和远程仓库。本地仓库:是在开发人员自己电脑上的Git仓库远

2020-10-07 19:32:30 119

原创 马踏棋盘算法

马踏棋盘算法1.马踏棋盘算法介绍和游戏演示(1)马踏棋盘算法也被称为骑士周游问题(2)将马随机放在国际象棋的8×8棋盘Board[0~7][0~7]的某个方格中,马按走棋规则(马走日字)进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格(3)游戏演示: 在线马踏棋盘2.马踏棋盘游戏代码实现(1)马踏棋盘问题(骑士周游问题)实际上是图的深度优先搜索(DFS)的应用。(2)如果使用回溯(就是深度优先搜索)来解决,假如马儿踏了53个点,如图:走到了第53个,坐标(1,0),发现已经走到尽头

2020-07-31 00:30:39 2080 3

原创 弗洛伊德算法(Floyd)

弗洛伊德(Floyd)1.弗洛伊德(Floyd)算法介绍(1)和Dijkstra算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名(2)弗洛伊德算法(Floyd)计算图中各个顶点之间的最短路径(3)迪杰斯特拉算法用于计算图中某一个顶点到其他顶点的最短路径。(4)弗洛伊德算法 VS 迪杰斯特拉算法:迪杰斯特拉算法通过选定的被访问顶点,求出从出发访问顶点到其他顶点的最短路

2020-07-29 23:43:39 678

原创 迪杰斯特拉算法(Dijkstra)——java实现

迪杰斯特拉算法(Dijkstra)1.应用场景-最短路径问题看一个应用场景和问题:(1)战争时期,胜利乡有7个村庄(A, B, C, D, E, F, G) ,现在有六个邮差,从G点出发,需要分别把邮件分别送到 A, B, C , D, E, F, G7个村庄(2)各个村庄的距离用边线表示(权) ,比如 A – B 距离 12公里(3)问:如何计算出D村庄到 其它各个村庄的最短距离?(4)如果从其它点出发到各个点的最短距离又是多少?2.迪杰斯特拉(Dijkstra)算法介绍迪杰斯特拉(Di

2020-07-28 23:01:31 1027

原创 克鲁斯卡尔算法(Kruskal)

克鲁斯卡尔算法(Kruskal)1.应用场景-公交站问题看一个应用场景和问题:(1)某城市新增7个站点(A, B, C, D, E, F, G) ,现在需要修路把7个站点连通(2)各个站点的距离用边线表示(权) ,比如 A – B 距离 12公里(3)问:如何修路保证各个站点都能连通,并且总的修建公路总里程最短?2.克鲁斯卡尔算法介绍(1)克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法。(2)基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回

2020-07-26 17:59:02 4660

原创 普里姆算法(Prim)-修路问题

普里姆算法(Prim)1.应用场景-修路问题看一个应用场景和问题:(1)有胜利乡有7个村庄(A, B, C, D, E, F, G) ,现在需要修路把7个村庄连通(2)各个村庄的距离用边线表示(权) ,比如 A – B 距离 5公里(3)问:如何修路保证各个村庄都能连通,并且总的修建公路总里程最短?2.最小生成树(MST)(1)修路问题本质就是就是最小生成树问题, 先介绍一下最小生成树(Minimum Cost Spanning Tree),简称MST。(2)给定一个带权的无向连通图,如何

2020-07-26 10:54:26 1424

原创 贪心算法(GreedyAlgorithm)

贪心算法(GreedyAlgorithm)1.应用场景-集合覆盖问题假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。 如何选择最少的广播台,让所有的地区都可以接收到信号2.贪心算法介绍(1)贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法.(2)贪婪算法所得到的结果不一定是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果.3.贪心算法最佳应用-集合覆盖的思路分析(1)如何找

2020-07-25 23:55:51 369

原创 动态规划算法(Dynamic Programming)-背包问题

动态规划算法(Dynamic Programming)-背包问题1.应用场景-背包问题背包问题:有一个背包,容量为4磅 , 现有如下物品物品重量价格吉他(G)11500音响(S)43000电脑(L)32000(1)要求达到的目标为装入的背包的总价值最大,并且重量不超出(2)要求装入的物品不能重复(3)背包问题主要是指一个给定容量的背包、若干具有一定价值和重量的物品,如何选择物品放入背包使物品的价值最大。其中又分01背包和完全背包(完全背包指的是:

2020-07-25 11:50:36 213

原创 分治算法以及汉诺塔问题

分治算法1.分治算法的介绍(1)分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……(2)分治算法可以求解的一些经典问题二分搜索汉诺塔合并排序快速排序大整数乘法棋盘覆盖线性时间选择最接近点对问题循环赛日程表2.分治算法的基本步骤分治

2020-07-22 23:14:10 218

原创 图的基本介绍以及图的深度优先和广度优先遍历

图的基本介绍以及图的深度优先和广度优先遍历1.图基本介绍为什么要有图前面我们学了线性表和树线性表局限于一个直接前驱和一个直接后继的关系树也只能有一个直接前驱也就是父节点当我们需要表示多对多的关系时, 这里我们就用到了图2. 图基本介绍图的举例说明图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。 结点也可以称为顶点。如图图的常用概念顶点(vertex)边(edge)路径无向图(右图)无向图: 顶点之间的连接没有方向,比如A-B,即可以

2020-07-22 07:14:37 280

原创 平衡二叉树(AVL树)的实现

平衡二叉树(AVL树)1.为什么要用平衡二叉树(AVL树)看一个案例(说明二叉排序树可能的问题)给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在.左边BST 存在的问题分析:左子树全部为空,从形式上看,更像一个单链表.插入速度没有影响查询速度明显降低(因为需要依次比较), 不能发挥BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢解决方案-平衡二叉树(AVL)2.平衡二叉树基本介绍平衡二叉树也叫平衡二叉搜索树(Self-ba

2020-07-19 17:11:16 719

原创 二叉排序树(BST)

二叉排序树(BST (Binary Sort(Search) Tree))1.基本介绍对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点。比如针对前面的数据 (7, 3, 10, 12, 5, 1, 9) ,对应的二叉排序树为:2.二叉排序树创建和遍历3.二叉排序树的删除二叉排序树的删除情况比较复杂,有下面三种情况需要考虑删除叶子节点 (比如:2, 5, 9, 12)删除只有一

2020-07-15 22:43:21 174

转载 赫夫曼树

赫夫曼树1.基本介绍(1) 给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree), 还有的书翻译为霍夫曼树。(2) 赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近。2.赫夫曼树几个重要概念和举例说明路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1结

2020-07-11 16:56:56 145

原创 详解堆排序

堆排序1.堆排序基本介绍(1) 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。(2) 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆, 注意 : 没有要求结点的左孩子的值和右孩子的值的大小关系。(3) 每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆(4) 大顶堆举例说明:我们对堆中的结点按层进行编号,映射到数组中就是下面这个样子:大顶堆特点:arr[

2020-07-10 07:56:25 2320 1

原创 线索化二叉树以及遍历线索化二叉树

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

2020-07-08 22:02:08 366

原创 顺序存储二叉树

顺序存储二叉树1.顺序存储二叉树的概念二叉树存储在一个数组中,通过存储元素的下标反映元素之间的父子关系。从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组。2.顺序存储二叉树的特点:顺序二叉树通常只考虑完全二叉树第n个元素的左子节点为 2 * n + 1第n个元素的右子节点为 2 * n + 2第n个元素的父节点为 (n-1) / 2n : 表示二叉树中的第几个元素(按0开始编号如上示)3.顺序存储二叉树应用实例八大排序算法中的

2020-07-06 22:49:55 369

转载 树的基本介绍和二叉树(BinaryTree)的介绍以及二叉树前中后序遍历

树的基本介绍和二叉树(BinaryTree)的介绍以及二叉树前中后序遍历1.树(tree)为什么需要树这种数据结构(1)数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低(2)链式存储方式的分析优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可, 删除效率也很好)。缺点:在进行检索时,效率仍然较低,比如(检索某个值,需要从头节点

2020-07-04 18:00:54 166

fastone capture截图工具

FastStone_Capture截图工具,解压缩即可使用,可以动态截图超长图片

2019-03-16

空空如也

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

TA关注的人

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