自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Seina

https://github.com/gaoshengnan

原创 SpringCloud组件---Eureka Server详细启动过程及图解

EurekaServer作为注册中心,记录着所有应用的信息和状态,应用叫什么名字,在哪个服务器上, 以及目前是不是正常工作,注册中心按照服务名分类组织服务清单,同时还需要以心跳检测的方式去监测清单中的服务是否可用,若不可用需要从服务清单中剔除,以达到排除故障服务的效果。 下面演示怎么启动 Spr...

2018-07-12 11:39:38 7212 5

原创 @JsonView的使用方法

用来过滤序列化对象的属性,可以有选择的序列化对象,首先定义一个 View 类,里面包含我们对要序列化的字段的定义,也可以将 View 类理解为一组标识。 首先使用接口来声明试图,userSimpleView 和 userDetailView,然后在属性的 get 方法上面指定视图: publ...

2018-07-09 21:52:39 5077 0

原创 @Valid注解是什么

@Valid 用于验证注解是否符合要求,直接加在变量user之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。 @RestController @RequestMapping("/user") public class Use...

2018-07-09 21:31:30 87947 17

原创 编译执行和解释执行有什么区别

什么是脚本:脚本是嵌入式代码,无需编译器就可以在环境中运行,起到解释作用 动态程序一般有两种方式: 1、二进制方式是将我们编写的程序进行编译,编程机器可以识别的指令代码,然后再执行,这种已编译好的程序让我们只能执行,使用,却看不他的程序内容 2、脚本方式是一条条命令,在执行时,是由系统的解释...

2018-01-18 16:23:52 8717 0

原创 Git是什么鬼,适合小白观看~

首先我是上来就开始用 Git,然后同事跑我这里一顿命令,窗口从哪里打开的都不知道,操作完问题解决就走了,what?我完全没看懂他在做什么,下一次无论我要克隆项目还是提交我还是不会,于是同事又过来一顿弄,最后还是没看懂 ~ 最后就想说学东西最好是系统的去学习,由浅到深,无论是别人说出表面的东西还是更...

2018-01-16 19:40:19 8155 2

原创 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

解法1 暴力法 代码如下: public int climbingStairs(int n) { return climb(0, n); } /** * 递归模拟爬楼梯在每层每次走一步或者两步的所有情况 * * @param ...

2018-01-15 21:03:13 10587 0

原创 关于中台的那些事情,你真的都知道吗?

中台的发展史 2019 年截至目前,如果说 IT 圈有哪些能称之为热点,那中台一定会占据一席之地。 今天我想就带你回到 10 年前,回到中台诞生的起点,我们随着时间的脚步一起重新走一遍中台的诞生和发展之路,来看看中台究竟从哪里来,又将走向何处? 业务数据双中台? 那么什...

2020-01-09 19:41:25 106 0

原创 多线程编程的硬件基础与 Java 内存模型

一、硬件基础 主内存执行一次读、写操作所需的时间可能足够处理器执行上百条的指令,为了弥补处理器与主内存处理能力之间的鸿沟,硬件设计者在主内存与处理器之间引入了高速缓存(Cache) 1、高速缓存是一种存取速率远比主内存大,容量远比主内存小的存储部件,每个处理器都有其高速缓存。引入高速缓存之后,处...

2019-07-08 00:55:36 95 0

原创 leetcode25 - 合并两个有序链表

/** * * <p> * * 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 * * 示例: * * 输入:1->2->4, 1->3->4 * 输出:1->1->2->3-&...

2019-06-15 13:39:55 45 0

原创 面试高频出现的 leetcode 算法题集(重中之重)

以下列出面试高频出现,以及一些非常经典重要的算法题: 表示已完成 实战题目 - Array [11] 盛最多水的容器 [26] 删除排序数组中的重复项 [66] 加一 [70] 爬楼梯 [88] 合并两个有序数组 [189] 旋转数组 [283] ...

2019-06-03 23:40:24 5347 0

原创 分治算法在海量数据处理中的应用

分治算法 核心思想就是分而治之,将原问题划分成 n 个规模较小,并且结构与原问题相似的子问题,递归地解决这些子问题,然后再合并结果,就得到原问题的解。 这个定义看起来有点类似递归。关于递归和分治的区别:分治算法是一种处理问题的思想,递归是一种编程技巧。实际上,分治算法一般都比较适合用递归来实现...

2019-05-29 15:16:37 192 0

原创 贪心算法 + 霍夫曼编码

贪心、分治、回溯、动态规划这 4 个算法思想,原理解释起来都很简单,但是要真正掌握且灵活应用,并不是一件容易的事。 贪心算法 贪心算法有很多经典的应用,比如霍夫曼编码、Prim 和 Kruskal 最小生成树算法、还有 Dihkstra 单源最短路径算法。 如何理解贪心算法? 假设我们有一...

2019-05-28 17:32:19 83 0

原创 Elasticsearch 分布式特性(集群、节点、分片)

一、es 分布式特性 es 支持集群模式,是一个分布式系统,其好处有两个: 增大系统容量,如内存、磁盘,使得 es 集群可以支持 PB 级的数据 提高系统可用性,即使部分节点停止服务,整个集群依然可以正常运行 es 集群由多个 es 实例组成 不同集群通过集群名字来区分,可通过 cluste...

2019-05-27 16:00:57 416 0

原创 Elasticsearch Search API - Request Body Search

如需了解URL Search,请点击上文 Elasticsearch Search API - URL Search 二、Request Body Search 将查询语句通过 http request body 发送到 es,主要包含如下参数: query: 符合 Query DSL 语法的查...

2019-05-24 17:22:39 138 0

原创 Elasticsearch Search API - URL Search

一、了解 Search API 实现对 es 中存储的数据进行查询,endpoint 为 _search,如下所示: //查询全部 GET /_search //指定单个索引查询 GET /my_index/_search //指定多个索引查询 GET /my_index1,my_inde...

2019-05-23 18:08:57 375 0

原创 ElasticSearch 倒排索引与分词详细说明

正排索引:文档 Id 到文档内容、单词的关联关系 文档 ID 文档内容 1 elasticsearch 是最流行的搜索引擎 2 php 是世界上最好的语言 3 搜索引擎是如何诞生的 倒排索引:单词到文档 Id 的关联关系 单词 文档 ID 列表 elas...

2019-05-21 21:58:52 319 0

原创 ElasticSearch 入门 - 文档和索引 API

一、索引相关基础操作 1. 获取所有的索引 GET /_cat/indices?v 2. 创建一个名叫 customer 的索引 PUT /customer?pretty 3. 删除名 customer 的索引 DELETE /customer? 二、文档相关基础操作 1. 向 custom...

2019-05-21 18:27:08 307 0

原创 MySQL 全局锁和表锁是什么

数据库锁设计的初衷是处理并发问题,作为多用户共享的资源,当出现并发访问的时候,数据库要合理地控制资源的访问规则,而锁就是用来实现这些访问规则的重要数据结构。 根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。 全局锁 全局锁就是对整个数据库实例加锁,MySQL 提供了...

2019-05-20 23:08:34 1059 0

原创 MySQL 的事务及隔离级别

简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败,在 MySQL 中,事务支持是在引擎层实现的。 一、事务的acid分别是什么 原子性(Atomicity):事务是一个原子操作单元,其对数据的全部修改操作要么全都执行,要么全都不执行 一致性(Consistent):在事务开...

2019-05-20 14:50:09 38 0

原创 MySQL 行锁、两阶段锁协议、死锁以及死锁检测

行锁 MySQL的行锁都是在引擎层实现的,但是 MyISAM 不支持行锁,意味着并发控制只能使用表锁,同一张表任何时刻只能被一个更新在执行,影响到业务并发度。InnoDB 是支持行锁的,这也是 MyISAM 被 InnoDB 替换的重要原因之一。 行锁就是针对数据库中表的行记录的锁,这很好理解...

2019-05-16 20:46:24 991 0

原创 MYSQL SQL 语句的 explain 解释器是什么 ?

一、explain 解释器 ( explain+sql 语句),explain 是什么,explain 能干什么? 使用 explain 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理开发人员写的 SQL,分析 SQL 语句或是表结构的性能瓶颈 可以知道 mysq...

2019-05-15 16:40:27 181 0

原创 MYSQL 存储引擎 InnoDB 和 MyISAM 有什么区别 ?

一、说一下 mysql 的逻辑架构 MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实...

2019-05-15 16:37:27 98 0

原创 CentOS 7 下 yum 安装和配置 Mysql (亲测无坑)

注意:以下安装步骤请严格确认您的Linux distribution 是否是 CentOS 7 的版本,不是相同版本谨慎操作,所有操作亲测是对的,没有坑~~ 一、具体安装步骤: 1、首先查看 Linux distribution 的版本号: [root@localhost /]# cat /...

2019-05-08 18:07:24 59 0

原创 CentOS 7 下 yum 安装和配置 Nginx (亲测无坑)

注意:以下安装步骤请严格确认您的Linux distribution 是否是 CentOS 7 的版本,不是相同版本谨慎操作,所有操作亲测是对的,没有坑~~ 一、什么是Nginx? 个人理解:Apache 和 Nginx 是 HTTP server,而 Tomcat 是 Applicatio...

2019-05-08 11:55:29 1212 0

原创 字符串匹配算法( BF 和 RK )

BF算法(Brute Force)- 暴力匹配算法 先了解两个概念,主串和模式串,比如在字符串 A 中查找字符串 B,那么 A 就是主串,长度是 n,B 就是模式串,长度是 m。 在匹配的过程中,假设 n = 10,m = 3,将主串拆分成【012、123、234、345、456、567、678、...

2019-05-07 22:57:02 44 0

原创 散列表是什么(散列函数、散列冲突、HashMap、LinkedHashMap)

一、什么是散列表 ? 散列表用的是数组支持下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。 举个例子,我们将参赛选手设置一个编号,比如051167,表示 5 年级 11 班 67 号选手,然后在数组索引下标对应 67 的位置存储该选手,这就是典型的散列思想,我们将参赛选手...

2019-04-24 22:28:15 212 0

原创 递归是什么,看完这篇文章保证你能理解递归!

一、递归对于我个人而言 有人说,递归是一种优雅的问题解决办法,有人说,递归是一种算法或者一种编程技巧,其实无论别人怎么说,我相信大多数人初学 “递” “归” 的时候纠结去的过程叫“递”,回来的过程叫“归”,那么问题来了,去的时候做了什么,什么时候回来,回来的时候又做了什么?那我们带着问题继续阅读吧...

2019-04-18 00:45:34 266 0

原创 队列是什么(顺序队列、链式队列、循环队列、阻塞队列、并发队列)

一、了解线程池 我们知道,CPU资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反,过多的线程反而会导致CPU频繁切换,处理性能下降。所以,线程池的大小一般都是综合考虑要处理任务的特点和硬件环境,来事先设置的。 另外,当线程池没有空闲线程时,新的任务请求线程资源时,我们一般有两种处理...

2019-04-17 22:09:25 135 0

原创 栈是什么(支持动态扩容的顺序栈、链式栈)

栈是一种’操作受限’的线性表,只允许在一端插入和删除数据,并且满足后进先出,先进后出的特性。 实际上,栈既可以用数组来实现,也可以用链表来实现,分别叫做顺序栈和链式栈。 一、如何用数组来实现一个栈 ? /* * 用数组实现一个栈,又称顺序栈 */ public class ArrayStack {...

2019-04-02 00:02:59 307 0

原创 链表是什么(循环链表、双向链表)

链表 链表不需要一块连续的内存空间,它通过指针将一组零散的内存块串联起来使用。其中每个内存块叫做链表的结点,记录下个结点地址的指针叫做后继指针。 一 单链表 链表的插入和删除是非常快速的,因为不需要做数据搬移,但是链表想要随机访问第k个元素就没有数组那么高效了,因为链表的数据不是连续的,没办法将首...

2019-03-28 13:13:40 462 0

原创 数组是什么(ArrayList)

数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据。 一 访问 数组适合查找操作,排好序的数组,用二分法查找,时间复杂度是O(logn)。数组支持随机访问,根据下标随机访问的时间复杂度是O(1)。 二 插入 如果在数组末尾插入,不需要移动数据,时间复杂度是O(1),如果...

2019-03-26 17:34:49 67 0

原创 ElasticSearcch6.4 — Reading and Writing documents 译

读写文档 介绍 ElasticSearch中的每个索引都分为多个主分片,每个主分片有多次复制,复制的这些版本被认作是副本群组,并且在添加和删除的时候必须保持一致,如果我们不这样做,那么从一个副本分片读取的内容可能就和从另一个副本分片读取的内容不一样了,保持主分片和副本分片同步, 保持从主分片和...

2018-10-22 21:49:01 80 0

原创 ElasticSearch6.4 — Date math support in index names 译

在索引名称中支持日期数字 索引名称中带日期数字使你可以搜索一系列时间段的索引,而不是搜索全部时间的索引,然后过滤结果或者维护别名。限制搜索的索引数可以减少集群的负载并且提高执行性能,例如,如果你想在日常的日志中搜索错误,你可以使用日期数字名称将索引限制为过去两天。 几乎所有具有index参数的...

2018-10-19 14:28:40 198 0

原创 ElasticSearch6.4 — Removal of mapping types 译

原文网址: https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html#removal-of-types 删除映射类型 在Elasticsearch 6.0.0 或者更高版本中...

2018-10-19 14:26:56 138 0

原创 ElasticSearch6.4 — Basic Concepts 译

接近实时 (NRT) Elasticsearch是一个接近实时的搜索平台,意思是从索引这个文档开始知道它变成饿了可搜索的文档只有轻微的延迟。 集群 一个集群是一个或者多个节点的集合,一起维护你全部的数据并且提供跨所有节点的联合索引和搜索功能,集群通常被唯一的名字标识,通常默认是“elas...

2018-10-19 14:24:21 83 0

原创 SonarQube — 使用 SonarQube 扫描分析 Maven 译

目录 Features特征 Compatibility兼容性 Prerequisites先决条件 Initial Setup初始设置 Global Settings全局设置 Analyzing a Maven Project分析M...

2018-09-26 14:42:52 1508 1

原创 Part III.VI Spring Boot 官方译文 — Starters

13.2.3 使用Spring BootMaven插件 Spring Boot包含一个Maven插件Maven plugin,它可以把项目打包成一个可执行的jar,如果你想使用,添加这个插件到你的<plugins>部分,像下面这个例子展示的一样: <build> &...

2018-09-16 23:00:53 95 0

原创 Part III.Spring boot 官网翻译 — 使用 Spring Boot

PartIII. 使用Spring boot 这章节带你了解使用Spring Boot更多的细节,它覆盖的主题像构建系统,自动装配和如何运行你的应用程序,我们也覆盖了一些Spring Boot的最佳实践,虽然Spring Boot没有什么特别之处(它只是你可以使用的另一个库),这里有一些建议,如...

2018-09-10 00:18:15 96 0

原创 Part II.Spring boot 官网翻译 — 入门

PartII. 入门 一般来说,如果你已经开始使用Spring Boot,你可以从这章开始读,本章回答了你基本的’是什么’,’怎么做’,’为什么’问题,这里包括Spring Boot的介绍以及安装说明,然后我们引导您构建您的第一个Spring Boot应用程序,讨论一些核心原理。 8. 介绍S...

2018-09-02 21:36:59 354 0

原创 Spring 官方翻译 — 用 RabbitMQ 发送消息

这个指南想你介绍设置RabbitMQ AMQP服务器的过程,它用来发布和订阅消息。 你将构建什么 你将构建一个应用程序,它使用Spring AMQP的RabbitTemplate发布消息和使用MessageListenerAdapter在一个POJO类上订阅消息。 你讲准备什么 大...

2018-08-11 00:51:52 1030 0

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