自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 闲聊分布式共识算法raft(2)

raft 算法在发生网络分区的时候是怎么保证一致性的     本文主要简单聊聊分布式共识算法raft在发生网络分区的时候如何保持最终一致性。如果有对raft基础不清楚,或者对日志复制和首领选举有疑问可以参看之前的文章.raft共识算法(1)    首先我们看一个状态就是没有网络分区的情况。图中我们可以观察到的情况就是绿色的client和蓝色的服务端节点之间网络是互通的。接下来我们来添加一个分区来使得他们有网络隔离存在。

2021-01-05 20:51:46 208

原创 闲聊分布式共识算法raft

闲聊分布式共识算法 raft    关于分布式共识算法, 算法主要解决的问题是分布式情况下,数据的一致性问题。    我们一步一步来解开raft算法的神秘面纱。    首先,我们先描述一下我们的问题。我先看一个例子,我们只有一个节点的系统,它可以是一个数据库 ,也可以是一个redis,他们可以保存一个值。我们同时有一个client可以改变这个节点储存的值。然后,绿色的client发

2020-12-27 09:52:34 1067

原创 # LeetCode 跳跃游戏

LeetCode 跳跃游戏    废话不多说,先上地址:https://leetcode-cn.com/problems/jump-game/给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true...

2019-04-04 17:43:02 202

原创 LeetCode - 搜索旋转数组

LeetCode - 搜索旋转数组     废话不多说,先上地址:https://leetcode-cn.com/problems/search-in-rotated-sorted-array/假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜...

2019-04-01 11:36:24 193

原创 LeetCode 11 题 盛水最多的容器

LeetCode 11 题 盛水最多的容器    废话不多说,先是题目描述:给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n...

2019-03-26 17:16:29 197

原创 LeetCode -整数翻转

LeetCode -整数翻转    废话不说,先上地址:https://leetcode-cn.com/problems/reverse-integer/ 中文版无需翻墙哦!给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3...

2019-02-27 14:52:11 184

原创 LeetCode - Z 字型变换

LeetCode - Z 字型变换     废话不说,LeetCode地址奉上.https://leetcode-cn.com/problems/zigzag-conversion/ 中文版不需要翻墙哈!    这种题型问题不大而且难度也不大,关键在于问题的理解。出题的频率也不高。  ...

2019-02-27 13:37:12 177

原创 LeetCode - 最长回文子串

LeetCode - 最长回文子串    废话不多说,先上地址:https://leetcode-cn.com/problems/longest-palindromic-substring/submissions/ 中文版 英文版的直接把 -cn 删除就可以访问了接下来是题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s ...

2019-02-26 14:54:40 169

原创 LeetCode - 无重复字符的最长子串

LeetCode -无重复字符的最长子串    废话不多说,先上LeetCode地址:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 中文版https://leetcode.com/problems/longest-substring-w...

2019-02-26 11:14:16 197

原创 LeetCode - 两数相加

LeetCode - 两数相加    LeetCode 第一题:    废话不多说,首先放上LeetCode的地址.https://leetcode.com/problems/add-two-numbers/submissions/ 英文版https://leetcode-cn.com/problems/ad...

2019-02-25 21:54:52 118

原创 LeetCode -两数之和

LeetCode -两数之和LeetCode 第一题:    废话不多说,首先放上LeetCode的地址.https://leetcode.com/problems/two-sum/ 英文版https://leetcode-cn.com/problems/two-sum/ 中文版    接下来我们来分析一...

2019-02-25 19:54:13 114

原创 浅尝服务,过载保护

浅尝服务过载保护    首先,我们要对过载保护做一个简单的了解和认识。     功能和过载保护类似的还有柔性服务。有些人也叫作有损服务。我谈一下自己对于过载保护的简单理解吧!在我看来过载保护有两个重要的点,一个是不要被别人拖垮了。一个是认怂。     首先,说一下什么叫做过载。所谓的过载就是超出了服务本身的服务能力。达到服务运行的瓶颈了,用户体验已经崩溃了。这里举点例子来说说明过载的情况吧

2018-07-20 20:46:03 611

原创 在其他数都出现k次的数组中找到仅出现过一次的数字

在其他数都出现k次的数组中找到仅出现过一次的数字    废话不多说,直接上题目:给定一个数组,在这个数组中有呀一个数只出现了一次,其他的数出现次数都是K(k>1),请返回这个数字。     首先,我们考虑一下这个问题。对于一个K进制的数字。如果有K个K进制的数字相加的话。会是一个什么样的结果!下图是7个7进制数字无进位相加的结果。     这里我们发现如果K个K进制的数字无进位相加的话

2017-12-27 19:43:37 488 1

原创 一个数的阶乘结果尾部会有多少个0?

一个数的阶乘结果尾部会有多少个0?    这个只是个稍微有点意思的面试题,亦或者是笔试题!     首先,我们拿到这个问题的第一个想法,0是哪里来的?

2017-12-26 10:23:24 2326

原创 java23种设计模式(4)-访问者模式

java23种设计模式(4)-访问者模式    相信大家遇到过这种情形的,对于同一块基本不动的数据,但是有不同的用户来访问,这个时候返回的数据还不是一样的?举个简单的例子,在我们的工作中很多时候是需要对国内的城市和地区做一个城市的列表。或者获取城市的排行榜类似的功能。对于城市这种数据基本很少动的数据。     数据的内容基本不变,但是呢不同的访问者需要的数据顺序或者是数据结果并不是很一致。

2017-12-25 19:50:39 168

转载 java线程池(4)-线程池关闭的过程(原理)

线程池的关闭

2017-12-19 20:04:24 2214

原创 java线程池(3)-线程池创建新线程的过程(原理)

java线程池(3)-线程池创建新线程的过程(原理)    前面的两期对于线程池的工作原理有了个大概的了解。那么线程池创建线程的过程是怎么样的呢?     首先,我们必须知道,线程池不会把我们传入的实现了Runable接口的类当做一个线程直接的启动。线程池会自己创建线程,然后去执行我们的所传入的任务的。会根据当前的线程池的状态和线程池中已有的线程池数量来决定是否创建一个新的线程来执行我们传入

2017-12-19 19:35:50 3033

原创 maven怎么实现父pom的管理

maven怎么实现父pom的管理    maven怎么实现父pom的管理今天讲点随意的东西吧!昨天在下班以前,自己写了一个小的pom然后里面创建了一个module。用module去继承工程里的父pom。     就出现了一点的小问题,什么问题呢?这里依赖了一个httpclient的包。但是我在工程中应用的时候发现导入包总是失败! <dependencies> <depende

2017-12-12 10:38:36 6039

原创 java线程池(2)-线程池添加任务的过程(原理)

上一期简单的聊了一下线程池的创建。这一期我们就,稍微熟悉一下线程池执行任务的过程吧!    线程池的工作原理是怎么样的呢?     首先,我用图来说明吧!     这里可以看到有一个任务队列,然后还有一个工作的线程池。今天主要将的就是向任务队列中添加任务的过程!     对于线程池我们上一期是做了一个稍微的解释的。我们构建线程池的时候,无论我们传入队列或者是不传入最后都会有一个队列的。那么

2017-12-11 19:42:01 5173

原创 java线程池(1)初识线程池

java线程池(1)初识线程池       对于用了java很久的程序员来说,java线程池一般都不陌生。但是对于刚开始使用java的人,对java线程池的了解可能就不是那么多充分了。        首先,我来说一下为什么需要线程池,多线程不就可以了吗?什么时候需要我就创建一个线程。不就可以了吗?        如果我们先要了解线程池就必须首先了解线程这个东西!线程是什么?线程是最小

2017-12-10 15:35:31 453

原创 java23种设计模式(3)-中介者模式

java23种设计模式(3)-中介者模式    很多应聘者在自己的简历上会点明,自己的合作能力不错。沟通能力不错!     现在,我们写的程序之间的沟通是怎么样的呢?沟通可能不是很好理解,但是调用大部分程序员都知道吧!    不知道大家遇到过还是没有遇到过!在公司工作的时候,有时候会遇到这种情况!在我们自己的多个工程里面调用了别人的服务。但是突然有一天服务方的负责人告诉你。下周一这个服务不再提供了

2017-12-09 17:36:17 174

原创 java23种设计模式(2)-责任链模式

java23种设计模式(2)-责任链模式    最近在公司做业务,发现有一个很麻烦的事情。什么麻烦事呢。楼主遇到了,就说出来让大家开心一下。哈哈!     事情是这样的,在我公司的网上发布一条消息。需要进行如下的操作!第一步:过滤所有的敏感词(部分词不方便发出来,以免和谐)。第二步:看一下这个人今天发布了多少条消息!(一天以内有次数限制)第三步:校验一下这人的手机号是不是敏感了(比如打不通,

2017-12-08 16:53:34 164

原创 java23种设计模式(1)-命令模式

java23种设计模式(1)-命令模式  基本所有的程序员都听说过设计模式,可是有不小一波的新手对于设计模式不是很清楚哟!今天就来聊聊设计模式的命令模式。   所谓命令模式,我们首先来看一下什么是命令。通常情况下我们发出命令(信号),然后我们就看到了变化。这个具体是怎么变化的,我们作为命令的发出者很多时候不是很关心的。就像是老板一样只关心结果。 那我们来看看命令模式都有哪几部分组成!我们

2017-12-07 18:27:39 182 2

原创 浅谈数据库主从复制

浅谈数据库主从复制首先,我们们需要了解一下,为什么需要数据库的主从复制。线下测试库需要。线下的数据分析。数据库的读写分离。  那么问题来了,我们应该怎么实现数据库的主从复制呢??? 很多人其实对于数据库的主从复制都不是很陌生的。数据库的主从复制大概分为以下三种:基于语句的复制基于行复制混合复制对于第三种的混合复制没有什么好说的!我们主要说一下前面两种复制。  在说复制方式之前我们首

2017-12-06 17:48:10 1015

原创 那些年我们学过的排序算法

那些年我们学过的排序算法 在我们校园招聘的时候,大多数的面试官对于一个校招生都可能会问过类似的问题。比如,快排的思路呀,快排的实现呀。当然还有其他的一些经典排序吧! 可能会有很多的同学会想到问这些有什么用吗?因为大多数的时候我们不需要自己写这些排序的呀! 主要问题有两个: 1. 这些你可能都不知道。 2. 不是为了问你具体的实现。 这些东西其实仅仅是为了看一下你是否真的努力学

2017-12-05 19:41:16 184

原创 丑数

面试题丑数 丑数定义:所有因子中只包含2,3,5的数就称之为丑数。例如 6,8都是丑数,但是14就不是丑数了。因为14的因子里面有7。习惯上我们认为第一个丑数是1。求按照从小到大的顺序第N个丑数。 我们首先分析一下,因为丑数的因子里面只有2,3,5。所以一个丑数的组成必然是这样的,丑数 x = 2^a*3^b*5^c; 如果可以看明白这个等式的话,我们接下来的工作就简单

2017-08-23 15:39:21 211

原创 有序数组中和为定值的数字对与和为定值的连续正整数序列

有序数组中和为定值的数字对与和为定值的连续正整数序列首先,对于这样的连续序列一般情况下我们是不会选择双层循环遍历的方式的。原因十分简单这个对时间复杂度的优化太差了。那么我们对于这样的定值和连续序列的问题怎办呢?我们从题目中可以获取一个很重要的信息,就是对于我们的正整数序列,其实也是有顺序的。这样我们就有一部分头绪了。这里我们先讨论第一个问题,都是对于定位的运用。因为数组是有序的,我们可以假设数组是

2017-08-17 19:23:25 482

原创 java实现从左到右打印二叉树

java实现从左到右打印二叉树对于二叉树相信大家都很熟悉了,作为一个程序员都是学过数据结构的。对于二叉树的遍历大家应该都不陌生吧!我们都试过前序遍历,中序遍历,后续遍历。但是我们很少去从左到右打印一棵二叉树! 刚一接触可能有点蒙哈!其实,这个东西并不麻烦也不神奇,我们下面先说一下这个思路和流程哈!首先,我们拿到这颗二叉树会拿到根节点,也就是root,我现在用一个三层的树做例子:

2017-08-02 21:13:42 1717 2

原创 idea thymeleaf 表达式模板报红波浪线

idea thymeleaf 表达式模板报红波浪线学习spring boot 的过程中随着velocity的缺点逐步暴露,比如前后端分离做的不好,即使接口前后端已经定好,但是前后端去分离,做的还是不是很好,仍然需要后端人员来维护模板。所以应运而生的就是新的模板 thymeleaf,这个模板里的语法都是前端的语法。并没有多余的模板语法。或者说单独的模板语法,但是我们很多同学用idea的时候发

2017-08-02 14:37:25 19000 18

原创 论学习和工作的最大区别

论学习和工作的最大区别版主我是一个刚毕业进入工作岗位的大学生。之前有过一段实习的经历,在58同城实习了有半年。在实习期间,接触工作都是一般的小case,而且都是有人带着你做,甚至有些公司的实习根本就不会让实习生去做真的上线的东西,导致很多实习生到实习结束都不清楚上线的流程是怎么样的。其实,对于一个工作很多年的人和一个刚进入工作的新人,最大的区别在哪里呢?这是一个值得思考的问题。对于程序员而

2017-08-01 22:05:51 3889 1

原创 mysql数据库引擎比较

mysql数据库常用引擎比较说到数据库引擎,自己表示很是惭愧,之前学了很久的数据库不知道引擎是干啥的!在到公司实习之后了解到mysql数据库的引擎。做了一些简单的梳理。1.数据引擎的概念2.mysql数据库常用的引擎3.mysql数据库几种常用的引擎特点一:存储引擎1.1存储引擎的作用就是如何实现存储数据。如何为存储的数据简历索引和更新,查询数据库等技术实现方法。1.2

2017-04-20 14:06:09 368

原创 寻找两个相交的单链表的第一个节点

两个相交的单链表的第一个节点昨天,58集团笔试,我在上面看到了一道比较常见的笔试题。就是两个相交的单链表的第一个节点。首先,我们应该考虑清楚单链表相交的情况。单链表有些特殊。两个单链表相交一定只会有一种情况,这是我们必须知道的。这种情况就是下图。 这就是单链表的特殊点了。那看着这个图我们应该就很清楚这个题目的做法了。我们首先算出两个链表的长度。然后我们让长链表首先遍历这个差值。

2017-03-24 16:22:15 964

原创 论设计模式之观察者模式

设计模式之观察者模式很多多人都知道设计模式,但是大多数初学者只是知道设计模式,但是却不知道如何使用或者说是在何种情况下使用相应的设计模式!今天我们谈一谈观察者模式,这个设计模式的存在有和用处和定义,以及在什么时候需要使用该模式。首先,我们谈一下定义:定义了对象之间的一对多依赖,这样一来,当一个对象状态发生改变的时候,它的所有依赖着都会受到通知并自动更新。可能还是不是很清楚应用场景哈

2017-03-23 15:57:02 231

原创 最长公共子串,字符串

最长公共字串目前,在各大网站或者是博客园,有着不少的关于这个问题的讲解,但是目前觉得都不是很清晰明白!现在普遍的解法都是用动态规划的方式来做这道笔试题。或者是经典的面试题。这里我做一个自认为比较清楚的讲解。说到动态规划很多人都不会感到很陌生。但是有多少知道动态规划什么?精髓在哪里? 这里仅仅提供一些个人见解,首先,动态规划不是一种解题的方式,它只是一种以空间换时间的优化方式,同时可

2017-03-23 14:05:36 387

原创 每天一个linux命令

每天一个linux命令(1)rz    最近在做公司的需求,由于沙箱不是很好用,所以就直接在linux上操作了。这里就有一个问题了,把本地打包后的文件上传到相应的服务器上。有人说用scp,但是今天我要说的命令是rz 。这个命令有什么用呢!有些linux系统并不是自带有这个命令的说一下rz的安装,yum install lrzsz,回车就OK了!    我们这就来看看效果,我们敲完这

2017-02-24 11:33:52 198

原创 论设计模式之配接器模式

配接器模式,       适配器模式在很多书籍中,有人称为配接器模式。首先,我们来看一下这个模式的定义(定义摘抄自headfirst,这本书不错顺便推荐一下),适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器模式让原来接口不兼容的类可以合作无间。        看完上面的定义相信大家已经大概明白什么意思了。通俗的说就是客户要的数据你都有,但是不在同一个对象中,或者说是这个对象并

2017-02-24 11:11:58 381

原创 数组中,除了两个数字外其他数字都是成对出现,找出来着两个数字

数组中,除了两个数字外其他数字都是成对出现,找出来着两个数字前一段,同学面试问了一个问题就是标题上的这个问题了。想了一下最起码有一下几种做法。做法一: 可以对数组进行排序,这样如果数组是成对出现的,那么这相同的数字下标一定相邻,这样只要遍历一遍数组就可以知道是哪两个数字了。这里可以这么做只需要知道当前数字和当前数字前面的数字不同,而且当前数字和当前数字后面的数字也不同,那么当前数字

2017-02-08 18:31:22 1375 1

原创 mysql5.1.17 安装过程服务无法启动

mysql 安装过程指南  今天,想在本机安装一个mysql用于自己本地的程序编写和测试。首先,我们需要下载一个mysql安装包,这里给出下载的地址地址,mysql download

2017-02-07 14:59:46 1618

原创 不用任何的算数运算符实现加法

不使用任何算数运算符实现加法     这里的算数运算符表示的是算术运算符 含义(示例)+(加号) 加法运算 (3+3)–(减号) 减法运算 (3–1) 负 (–1)*(星号) 乘法运算 (3*3)/(正斜线) 除法运算 (3/3)%(百分号) 求余运算10%3=1 (10/3=3·······1)^(乘方) 乘幂运算 (3^2)!

2017-01-18 17:00:29 1352

原创 字符串含有字符各不相同

字符串的字符各不相同    前一段,看到一个问题是一个字符串的所有字符都各不相同。在这里给出几种常见的解法。    首先,最容易想到的就是一个桶排序的算法。直接给出字符串所有可能出现的字符的个数个桶,然后遍历字符串,没个字符出现一次就给相应的桶内数字加一。最后统计看有没有桶的数字是超过1的就可以知道结果了。   然后,我们还可以直接遍历字符串,每次遍历到一个字符我们就从头开始遍历,然后

2017-01-18 16:13:53 578

空空如也

空空如也

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

TA关注的人

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