自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Springcloud自学笔记

官网:https://spring.io/projects/spring-cloud/微服务定义:官方定义:微服务就是由一系列围绕自己业务开发的微小服务构成,他们独立部署运行在自己的进程里,基于分布式的管理通俗定义:微服务是一种架构,这种架构是将单个的整体应用程序分割成更小的项目关联的独立的服务。一个服务通常实现一组独立的特性或功能,包含自己的业务逻辑和适配器。各个微服务之间的关联通过暴露api来实现。这些独立的微服务不需要部署在同一个虚拟机,同一个系统和同一个应用服务器中。SpringClou

2021-04-16 16:19:31 225

原创 RabbitMQ自学笔记

MQ(message queue)AMQP协议AMQP ladvanced message queuing protool)‘在2003年时被提出,最早用于解决金融领不同平台之间的消息传递交互问题。顾名思义,AMQP是一种协议,更准确的说是一种binary wire-level protoco1(链接协议),这是其和UNS的本质差别,AMOP不从API层进行限定,而是直接定义网络交换的数据格式。这使得实现了AMOP的provider天然性就是跨平台的。以下是ANOP协议模型:...

2021-03-23 22:05:42 175 2

原创 juc

一.volatile关键字当多个进程操作共享数据时,可以保证内存中的数据可见,相较于sychronized,是一种较为轻量级的同步策略。注意:1)volatile不具有互斥性2)不能保证变量的原子性二.原子变量:jdk1.5以后java.util.concurrent.atomic包下提供了常用的原子变量1.volatile提供了内存可见性2.CAS算法保证数据原子性,CAS算法是硬件...

2020-03-17 16:56:13 107

原创 solr

Solr是如何实现全文检索的呢?索引流程:solr客户端(浏览器、java 程序)可以向solr服务端发送POST请求,请求内容是包含Field等信息的一个xml文档,通过该文档,solr 实现对索引的维护(增删改)...

2020-03-15 21:37:34 143

原创 docker

需要正确的理解仓储/镜像/容器这几个概念:Docker本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎image镜像文件。只有通过这个镜像文件才能生成Docker容器。image文件可以看作是容器的模板。Docker根据image文件生成容器的实例。同一个image文件,可以生成多个同时运行的容器实例。安装docker...

2020-03-09 00:13:29 73

原创 git&&github

1.git命令行操作1.1)本地库初始化git init:1.2)设置签名(区分不同开发人员身份)形式:姓名:tom 邮箱:[email protected]命令:·项目级别/仓库级别:仅在当前本地库范围内有效(优先级更高)git config user.name tomgit config user.email [email protected]·系统用户级别:登陆当前操作系统的用户范围...

2020-02-27 23:10:38 105

原创 nginx自学笔记

1.反向代理(1.)正向代理:在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问。(2.)反向代理:我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露了代理服务器地址,隐藏了真是服务器ip地址。2.负载均衡客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互...

2020-02-25 17:21:05 94

原创 mysql高级

先安装linux版本mysql

2020-02-21 14:37:32 95

原创 redis

redis一般运行在linux上,所以要安装在linux系统里。安装redis1)通过filezilla把文件发送到/usr/local/temp文件夹2)解压文件 #tar zxvf 文件名3)复制文件到/usr/local/redis: #cp -r 文件名 /usr/local/redis4)安装,在/usr/local/redis文件夹下,执行#make和#make instal...

2020-01-11 22:13:35 77

原创 Linux

系统路径:/ 表示根目录 ~表示/rootetc:存放系统配置目录home:除了root以外的所有用户默认在home下新建一个以用户名作为文件夹名称的文件夹root:root用户单独文件夹usr:所有用户安装的软件都放入到这个文件夹中(在usr/local下新建一个temp文件夹,所有压缩包都放在这个里面)常用命令:()pwd:打印工作目录,就是当前所在目录cd:进入到文件夹(1...

2019-12-19 21:14:46 76

原创 配置嵌入式servlet容器

1).如何定制和修改servlet容器的相关配置1.修改server有关的配置2.编写一个ConfigurableServletWebServerFactory,嵌入式的servlet容器的定制器public ConfigurableServletWebServerFactory configurableServletWebServerFactory(){ TomcatSer...

2019-12-09 23:30:34 86

原创 springboot资源引入和国际化

虽然WebMvcConfigurerAdapter已经被淘汰,但是仍然可以用这种方式,这样可以更改静态资源的首页加载//所有的WebMvcConfigurationSupport组件都会一起起作用 @Bean //将组件注册在容器 public WebMvcConfigurerAdapter webMvcConfigurerAdapter(){ WebMvcCon...

2019-12-08 23:30:54 176

原创 Thymeleaf使用&语法

@ConfigurationProperties( prefix = "spring.thymeleaf")public class ThymeleafProperties { private static final Charset DEFAULT_ENCODING; public static final String DEFAULT_PREFIX = "clas...

2019-12-02 23:33:33 150

原创 springboot与web开发的静态资源使用

springboot对静态资源的映射:public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isAddMappings()) { logger.debug("Default resource handl...

2019-11-28 22:32:56 82

原创 springboot日志

1.日志框架左边选一个门面(抽象层),右边来选一个实现日志门面:SLF4J日志实现:Logbackspringboot:底层是spring框架,spring框架默认是JCLspringboot框架选用SLF4J和Logback2.SLF4J使用1.如何在系统中使用SLF4J以后开发的时候,日志记录方法的调用;不应该是直接调用日志的实现类,而是调用日志抽象层的方法import o...

2019-11-20 22:49:52 55

原创 springboot自动配置

自动配置原理:1)springboot 启动时加载主配置类,开启了自动配置功能 @EnableAutoConfiguration2)@EnableAutoConfiguration 功能:利用AutoConfigurationImportSelector.class给容器导入一些组件List configurations = this.getCandidateConfigurations(a...

2019-11-17 17:55:55 154 1

原创 配置文件加载位置

spring.config.location=E:application.properties

2019-11-08 21:12:59 73

原创 Profile

1.多Profile文件我们在主配置文件编写的时候,文件名可以是 application-(profile).properties/yml默认使用application.properties配置2.yml支持多文档块方式server: port: 8081spring: profiles: active: dev---server: port: 8083spr...

2019-11-08 21:10:09 97

原创 配置文件占位符

RandomValuePropertySource:在配置文件中使用随机数${random.value} ${random.int} ${random.long} ${random.int(10)} ${random.int[1024,65535]}属性配置占位符:app.name = MyAppapp.description = ${app.name} is a spring ...

2019-11-07 15:19:05 399

原创 @PropertySource&@ImportResource

@PropertySource:加载指定的配置文件@PropertySource(value = {"classpath:person.properties"})@Component@ConfigurationProperties(prefix = "person")public class Person { private String lastName; private...

2019-11-05 21:39:50 111

原创 @Value的用法

<bean class="Person> <propety name="lastname" vlaue="字面量/${key}从环境变量,配置文件中获取值/#{SpEl}"></Propety></bean>上面的这些代码,就相当于@Value的作用,@Value的写法和上面代码的Value一样@Value直接放在你要赋值的对象上@Val...

2019-11-05 20:39:36 4417

原创 springboot的主程序类,主入口类

@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan( excludeFilters = {@Filter( type = Filte...

2019-11-05 15:48:04 251

原创 yml配置文件获取

1.先创建一个Person类:(get和set方法不能缺少)将配置文件中配置的每一个属性的值,映射到这个组件中@ConfigurationProperties:告诉springbootprefix = “person” 配置文件中;那个下面的所有属性进行一一映射只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能@Com...

2019-11-03 20:43:14 1055

原创 yaml的基本语法

1.基本语法:k:(空格)v : 表示一对键值对,空格必须有以空格的缩进来控制层级关系:只要是左对齐的一列数据,都是同一个层级的server: port: 8081 path: /hello属性和值也是大小写敏感的2.值的写法:####字面量:普通的值(数字,字符串,布尔...)k: v : 字面直接来写; //字符串默认不用加上单引号或者双引号...

2019-11-03 16:20:04 97

原创 ssm框架知识点(本人自学)

Spring概念:1.Spring时开源的轻量级框架(1).aop:面向切面编程,扩展功能不是修改源代码实现(2).ioc:控制反转,对象的创建不是通过new方式实现的,而是交给配置创建对象需要导入一个commons-logging-1.1包//加载Spring配置文件,根据配置文件创建对象ApplicationContext context = new ClassPathXmlAp...

2019-11-03 15:51:34 451

转载 Spring 注解大全与详解

Spring 注解大全与详解Spring使用的注解大全和解释@Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上。@Service 组合注解(组合了@Component注解),应用在service层(业务逻辑层)@Repo...

2019-11-02 23:55:06 67

原创 SpringBoot入门

开发前准备:JDK:要求1.7版本及以上(本人JDK版本1.8) java -versionMaven:3.3版本及以上 (maven版本3.3.9) mvn -v开发工具:idea编写一个springboot入门程序:首先先创建一个maven项目,选择好文件存放位置,然后在pom.xml文件中导入相关依赖,这里的springboot版本为2.1.2,maven设置为自动下载即可...

2019-11-02 09:30:17 51

原创 骑士周游算法

马踏棋盘算法代码实现:骑士周游问题的解决步骤和思路1.创建棋盘chessBoard,是一一个二维数组2.将当前位置设置为已经访问,然后根据当前位置,计算马儿还能走哪些位置,并放入到一个集合中(ArrayList),最多有8个位置,每走一步,就使用step+13.遍历ArrayList中存放的所有位置,看看哪个可以走通,如果走通,就继续,走不通,就回溯4.判断马儿是否完成了任务,使用ste...

2019-11-01 15:21:23 646

原创 弗洛伊德算法

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

2019-10-30 15:58:04 200 1

原创 迪杰斯特拉算法

迪杰斯特拉(Dijkstra)算法过程设置出发顶点为v,顶点集合V{v1,v2,…}, v到V中各顶点的距离构成距离集合Dis,Dis{d1,d2,i…}, Dis集 合记录着v到图中各顶点的距离(到自身可以看作0, v到vi距离对应为di)1) 从Dis中 选择值最小的di并移出Dis集合,同时移出V集合中对应的顶点vi,此时的v到vi即为最短路径2) 更新Dis集合, 更新规则为:比较...

2019-10-24 11:00:40 120

原创 克鲁斯卡尔算法

克鲁斯卡尔算法介绍1)克鲁斯卡尔(Kruskal)算法, 是用来求加权连通图的最小生成树的算法。2)基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路3) 具体做法:首先构造一个只含n个顶点的森林,然后依权值从小到大从连通网中选择边加入到森林中,并使森林中不产生回路,直至森林变成一棵树为止...

2019-10-21 23:01:04 969

原创 普利姆算法

最小生成树:1)给定一个带权的无问连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树2) N个顶点,一定有N-1条边3) 包含全部顶点4) N-1条边都在图中5)举例说明(如图:)6)求最小生成树的算法主要是普里姆算法和克鲁斯卡尔算法...

2019-10-16 15:36:56 186

原创 贪心算法

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

2019-10-15 19:18:49 166

原创 KMP算法

KMP算法最佳应用-字符串匹配问题➢字符串匹配问题: :1)有一个字符串str1= “BBC ABCDAB ABCDABCDABDE”,和一个子串str2=“ABCDABD”2)现在要判断str1是否含有str2, 如果存在,就返回第一次出现的位置,如果没有,则返回-13)要求:使用KMP算法完成判断。不能使用简单的暴力匹配算法....

2019-10-15 11:34:34 74

原创 动态规划算法

动态规划算法介绍1)动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法2)动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若千个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。3)与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。( 即下一个子阶段的求解是建立在...

2019-10-14 21:41:25 42

原创 分治算法

分治算法算法的小案例,汉诺塔游戏:package com.dac;public class HanoiTower { public static void main(String[] args) { hanoiTower(10,'A','B','C'); } //汉诺塔移动算法 public static void hanoiTower(in...

2019-10-13 18:29:43 64

原创 二分查找的非递归实现

public class BinarySearchNoRecursion { public static void main(String[] args) { int[] arr = {1, 3, 8, 10, 11, 67, 100}; System.out.println("索引为:"+binarySearch(arr,11)); } ...

2019-10-13 10:45:39 113

原创 图的广度优先搜索

图的广度优先搜索(Broad First Search)类似于一个分层搜索的过程,广度优先遍历需要使用一个队列以保持访问过的结点的顺序,以便按这个顺序来访问这些结点的邻接结点。广度优先遍历算法步骤1)访问初始结点v并标记结点v为己访问。2)结点v入队列3)当队列非空时, 继续执行,否则算法结束。4)出队列,取得队头结点u。5) 查找结点u的第一个邻接结 点w。6)若结点u的邻接结...

2019-10-13 10:02:40 105

原创 图的深度优先搜索

图遍历介绍所谓图的遍历,即是对结点的访问。一个图有那么多个结点,如何遍历这些结点,需要特定策略,一般有 两种访问策略:(1)深度优先遍历(2)广度优先遍历深度优先遍历基本思想图的深度优先搜索(Depth First Search)1) 深度优先遍历,从初始访问结点出发,初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第-一个邻接结点,然后再以这个被访问的邻接结点作为初始结点...

2019-10-10 19:48:38 233

原创 图的快速入门案例

import java.util.ArrayList;public class Graph { private ArrayList<String> vertexList;//存储顶点的集合 private int[][] edges; //存储图对应的邻接矩阵 private int numOfEdges; //存储边的条数 public s...

2019-10-09 10:57:58 65

空空如也

空空如也

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

TA关注的人

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