自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Zookeeper-分布式协调管家 简单原理介绍

目录1 什么是zookeeper2 zookeeper 集群构成3 zookeeper 存储的数据特点4 zookeeper ZAB协议5 zookeeper 选主过程6 zookeeper API使用6.1配置管理6.2分布式锁1 什么是zookeeperzookeeper 可以理解成一个管家,可以用zookeeper来管理一些分布式集群。比如 一个系统有一堆服务器组成,这些服务器有统一的配置,可以用zookeeper来存储统一配置。可以把zookeeper理解一个公共区域。也可以把zookeeper

2021-01-17 16:55:13 169

原创 缓存和数据库的更新顺序问题

一、问题描述在读取缓存时,都是先从缓存中读取。缓存有直接返回,缓存无则从数据中读取更新值缓存。如果要更新数据库和缓存时,那么先更新数据库还是先更新缓存?二、方案讨论1、先删除缓存,然后更新数据库假设有两个请求线程1和线程2(1)线程1 先清除缓存,还没来得及更新数据库(2)线程2 读 redis,发现没数据,读数据的内容,然后更新缓存(3)线程1 更新数据库的内容这种情况下,就会缓存中的数据是老数据,而数据库的数据是新数据。会产生数据不一致的问题2、先更新数据库,然后删除缓存有两个请

2020-12-14 22:59:25 854

原创 多线程常见面试编程题

概要一、两个线程交替打印(1)使用synchonized(2)使用Lock-Condition(3)使用LockSupport二、三个线程交替打印(1)使用Lock-Condition(2)使用LockSupport三、消费者和生产者模式(1)使用synchronized(2)使用Lock-Condition(3)直接使用BlockingQueue一、两个线程交替打印(1)使用synchonizedpublic class PrintTask { boolean isFirstStart =

2020-12-13 16:51:08 233 1

原创 字符串匹配算法加速-KMP

数据结构学习总结:一、KMP简介kmp算法,也就是用于字符串匹配中的一种算法。(即解决一个主串中是否包含给定子串)普通暴力解法:在两个字符串匹配过程中,当遇到不匹配时,匹配串需要往后挪一位,从头开始重新再匹配。时间复杂度为O(N*M) (N为主串的长度,M为匹配串的长度)而KMP算法,是为了在不匹配的时候,能让匹配串多往后挪几位。加速匹配。将时间复杂度降为O(N)二、代码实现2.1 思路:(1) 首先要理解一个概念。即=》某一个字符的前缀和后缀匹配的最长长度。假设子串为abca

2020-07-23 20:32:30 398

原创 构建Tire树--字典树、前缀树

学习总结-来自《数据结构与算法》一、Tire树的概念结构:树形结构特点:利用字符串之间公共的前缀,将重复的前缀合并在一起作用:可以高效的匹配。用来解决在一组字符串集合中快速查找某个字符串的问题。(搜索引擎中的关键词提示)二、构建Tire树问题一;如何存储一个节点对应的所有子节点解决:假设存储范围为a-z。那么可以用一个26个大小的数据来存储。索引为0的位置表示子节点是a。索引为1的...

2020-07-09 23:17:07 275

原创 html css布局定位相关总结

前置知识:学习页面布局和定位之前。最好先已经掌握以下两个前置内容1 盒子模型和2 元素分类目录一 CSS盒子模型二 元素分类1. 1 块元素1.2 内联元素1.3 内联块元素三 内容溢出3.1溢出的部分隐藏3.2 加滚动条一 CSS盒子模型示例:比如下面一段css样式.box { width: 350px; height: 150px; margin: 25px; padding: 25px; border: 5px solid black;}二 元素分类

2020-06-14 11:05:14 150

原创 Https是怎么从http演变过来的----对称加密/非对称加密/证书认证

学习https笔记:1 http的请求过程如下所示为正常情况下的http请求如果一帆风顺的情况下。服务端能正常收到请求,客户端也能正常收到响应。但是总有喜欢捣乱的人,中间会拦截数据。那么本该接收数据的服务端就收不到数据。而客户端收到的数据时被篡改过的假数据。2 数据加密后请求像1中所呈现,发送的数据很有可能被黑客拦截,获取私密信息。所有在发送时将数据加密,即使被拦截到了,有不会轻而易举地能拿到真实数据。那么怎么加密呢?主要是对称和非对称加密2. 1对称加密2.2 非对称加密3

2020-06-08 23:43:29 135

原创 前端Angular框架入门到放弃-路由使用篇

前序:后端还不精通的我。现在要开始另一项不精通的技术了。没办法,就像一位同事说的 我们要面向工资编程O(∩_∩)O。所以边学习边记录。望纠正这里写目录标题一 项目目录介绍二 初始化项目三 路由配置1 app主路由:2 module子路由:四 表单一 项目目录介绍…待补充二 初始化项目…待补充三 路由配置1 app主路由:(1)import { RouterModule, Routes } from '@angular/router';2 module子路由:四 表单...

2020-06-06 00:00:07 250

原创 堆-大顶堆小顶堆

目录堆的定义堆的相关操作插入元素删除顶点元素堆的定义是一个完全二叉数堆中的每个节点都必须大于或小于其子树所以节点的值。每个节点大于其子树节点的堆叫做大顶堆每个节点小于其子树节点的堆叫做小顶堆堆的相关操作插入元素删除顶点元素...

2020-05-02 08:32:41 976

原创 二叉树学习--幸好只有二叉

学习总结-来自《极客时间-数据结构与算法》目录概念实现方式遍历方式概念实现方式遍历方式

2020-04-12 20:55:08 138

原创 回溯算法-不断回头又前进,只为找到最好的

学习总结-来自《极客时间-数据结构与算法之美 》文章目录回溯算法回溯的理解案例1:八皇后棋盘案例2:背包问题回溯算法回溯的理解解决一个问题,可分为几个阶段。每个阶段都有不同的选择。比如当前所在阶段有A1,B1,C1 3种选择。当前阶段选择A,进入下一个阶段,又是同样面临A2,B2,C2 3中选择,这个阶段选择B2,进入下一阶段。发现选择B2不符合最后的结果,返回上阶段,重新选择C2,然...

2020-03-29 10:21:35 161

原创 贪心算法

学习总结:来自极客时间《数据结构与算法之美》文章目录1 贪心算法适用场景案例1 :分饼干案例2 :钱币找零1 贪心算法“在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解”适用场景(1) 在一组数据中,定义了限定值和期望值。希望从中选出数据,在满足限定值的条件下,期望值最大。(2) 在当前选择下,在对限定值有...

2020-03-28 11:20:04 99

原创 二分法学习-几种变形的二分法

文章目录情景1:给定已排序好的数据(无重复值),找到给定的key值情景二:查找第一个值等于给定值的元素的下标(nums数组有重复数据)情景三:查找最后一个值等于给定值的元素的下标(nums数组有重复数据)情景四:查找第一个大于等于给定值的元素(nums数组有重复数据)情景五:查找最后一个小于等于给定值的元素(nums数组有重复数据)情景1:给定已排序好的数据(无重复值),找到给定的key值代...

2020-03-23 07:13:53 168

原创 基础排序算法(2)——桶排序/计数排序

学习总结,如有错,望指正,谢谢~~~一 桶排序思路:将一组数据分到几个有序的桶中,每个桶再单独进行排序。然后从同种依次取出数据,结果便是有序的。图示...

2020-03-21 10:06:37 105

原创 工厂模式UML关系图

工厂模式主要有3类一、简单工厂二、工厂方法三、抽象工厂具体UML 如下图示

2020-03-14 08:48:14 1015

原创 IDEA中git的使用整理

文章目录1 安装及配置git2 导入git项目3 常用的git指令(1)项目比对(2)项目提交(3)commit 提交之后要撤销(4)文件恢复1 安装及配置git(1)先下载安装好git软件 https://git-scm.com/download/win(2)打开IDEA中的Settings(3)选择version controll 中的git。配置git(4)然后点击test...

2020-03-09 22:24:24 189

原创 数据结构学习——队列

以下为学习总结概要:1.队列的概念2.模拟循环队列的实现原理–循环队列3.队列有关的常用算法(后续补)-------------------------------------------------------1.队列的概念线性表数据结构 —> 先进先出加入一个元素时,从队尾入队。删除一个元素时,从队头出队2.模拟循环队列的实现原理循环队列与不同队列的差别在其头尾指...

2020-03-08 11:33:44 113

原创 链表常用操作-链表反转/中间节点/合并有序链表/环形链表

链表反转1 链表反转/** * 1 先记录要反转的next的值 * 2 将当前指针所指向的反转 * 3 将pre指向curr * 4 将curr 指向next * @param node * @return */ public static Node<Integer> reverseNode(Node<Integer> node){...

2020-03-05 10:02:14 317

原创 基础排序算法(1)-冒泡排序/插入排序/选择排序/归并排序/快速排序

几种基础排序算法及其比较1.冒泡排序2.插入排序3.选择排序4.归并排序5.快速排序6.计数排序1 冒泡排序思路(从小到大):(1)假设数据长度为N。总共要排序N-1轮。(2)在每一轮排序中。相邻两个元素之间进行比较。不符合排序顺序的两个进行位置交换。每一轮结束后。教大的元素都被移到了最右侧。冒泡思路示意图代码示意去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示...

2019-11-03 11:53:39 322

空空如也

空空如也

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

TA关注的人

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