自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 软件架构场景实战--持续更新

目录01 | 冷热分离:表数据量大读写缓慢如何优化?02 | 查询分离:表数据量大查询缓慢如何优化?03 | Elasticsearch 注意要点:这三点你不得不知04 | 分表分库:单表数据量大读写缓慢如何解决?05 | 读缓存:如何减少数据库读操作压力?06 | 写缓存:如何节省数据库写操作资源?07 | 数据收集:高频数据收集请求如何不影响主业务?08 | 秒杀架构:设计秒杀架构必知必会的那些事09 | 注册发现:如何对后台服务进行高效管理?10 | 全链路日志:这个请求到底经历了什么?11 | 熔断

2021-03-01 10:29:42 429 4

转载 10分钟彻底理解Redis的持久化机制:RDB和AOF

目录什么是Redis持久化?RDB开启RDB持久化方式1. save命令2. bgsave3. 服务器配置自动触发rdb文件AOF开启AOF持久化方式三种写入策略alwayseverysecnoAOF文件重写两种重写方式AOF文件损坏AOF的优点AOF的缺点选择RDB还是AOF呢?小结什么是Redis持久化?Redis作为一个键值对内存数据库(NoSQL),数据都存储在内存当中,在处理客户端请求时,所有操作都在内存当中进行,如下所示:这样做有什么问题呢?其实,只要稍微有点计算机基础知识的人都知道

2021-02-26 11:09:44 217

原创 MySQL知识点串讲【适用于中高级开发】-持续更新

目录总述01 | 基础架构:一条SQL查询语句是如何执行的?02 | 日志系统:一条SQL更新语句是如何执行的?03 | 事务隔离:为什么你改了我还看不见?04 | 深入浅出索引(上)05 | 深入浅出索引(下)06 | 全局锁和表锁 :给表加个字段怎么有这么多阻碍?07 | 行锁功过:怎么减少行锁对性能的影响?总述01 | 基础架构:一条SQL查询语句是如何执行的?MySQL 可以分为 Server 层和存储引擎层两部分。Server 层:包括连接器、查询缓存、分析器、优化器、执行器等,涵盖

2021-02-01 18:18:46 391 4

原创 JUC常见工具类使用及原理分析--Condition

目录一、概述二、Condition基本使用三、源码分析condition.awaitawait()addConditionWaiter()fullyRelease(node)isOnSyncQueue(node)condition.signalsignal()doSignal(first)四、总结一、概述二、Condition基本使用三、源码分析condition.awaitawait()调用 Condition 的 await()方法(或者以 await 开头的方法),会使当前线程进入等待队

2020-12-28 17:36:14 995

原创 Java并发之AQS详解

不了解对称加密、非对称加密、网络传输的不可靠性等知识点的读者请自先了解一下啊目录一、概述二、框架三、源码详解1. 结点状态waitStatus2. acquire方法系列acquire(int)tryAcquire(int)addWaiter(Node)enq(Node)acquireQueued(Node, int)shouldParkAfterFailedAcquire(Node, Node)parkAndCheckInterrupt()acquire()小结一、概述二、框架它维护了一个v

2020-12-23 15:16:30 238

原创 学习MySQL性能优化,只需这一篇就够了

当提到MYSQL性能优化时,你想到的都有什么呢?相信大部分人张口就会说:当然是建索引了,然后就会是各种的索引失效原则。如果你也是这么说的话,那么看这篇文章你就看对了,这篇文章将会多维角度来讲解MySQL的性能优化想要了解MySQL的性能优化一定需要先知道其查询过程, 这样才可以根据查询的不同阶段采用不同的优化策略。MySQL的查询过程如图:MySQL的查询过程为:建立连接:根据通信协...

2020-12-02 15:19:29 230

原创 便捷克隆虚拟机

base虚拟机已经安装了jdk、mysql、tomcat等基础软件,如果想着克隆一个完整虚拟机进行其他操作,可按照如下步骤:右键需要克隆的虚拟机一直下一步,到这个界面点击创建完整克隆,之后选择保存路径等待片刻就克隆完成。修改70-persistent-net.rules文件:执行命令:修改前:修改后:修改内容:1. 注释掉第一行;2. 第二行eth1修改为eth0保存之后执行start_udev4. 修改ifcfg-eth0配置文件:执行命令:修改本虚拟机ip地址

2020-07-25 14:03:07 135

转载 自定义注解详细介绍

1 注解的概念1.1 注解的官方定义首先看看官方对注解的描述:An annotation is a form of metadata, that can be added to Java sourcecode. Classes, methods, variables, parameters and packages may beannotated. Annotations have no direct effect on the operation of thecode they annota

2020-05-23 09:55:14 140

原创 带你彻头彻尾的学习HTTPS原理。图解加文字描述精解版

不了解对称加密、非对称加密、网络传输的不可靠性等知识点的读者请自先了解一下啊目录流程图详解:文字描述详解SSL建立过程重点内容记录流程图详解:文字描述详解SSL建立过程客户端通过发送Client Hello报文开始SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件(Cipher Suite)列表(所使用的加密算法及密钥长度等)。注意:客户端还会附加一个随机数,这里记为A。...

2020-04-28 23:12:01 567

原创 单例模式详解--通过源码分析:反射及反序列化破坏单例原理及枚举式单例如果防止其破坏、readResolve()如何防止反序列化破坏单例以及spring容器式单例思想

从最基础的饿汉式及懒汉式demo进行引入,通过jdk源码分别分析反射及反序列化破坏单例原理、readResolve()如何防止反序列化破坏单例、枚举式单例的优点及如何防止反射及反序列化破坏、以及spring容器式单例思想详解。

2020-04-11 18:07:42 388

原创 一句话总结六大软件设计原则

目录单一职责原则:里氏替换原则:依赖倒置原则:接口隔离原则:德米特法则(最少知道原则):开闭原则:单一职责原则:详解:应该有且仅有一个原因引起类的变化,建议在实际中做到:接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。也可以细分为类的单一职责和方法的单一职责。正例——类的单一职责:实现打电话功能,可以定义两个类,一个类负责拨通电话和挂断电话(协议管理),另一个类负责通话(数据...

2020-04-07 23:24:00 264

原创 NIO实现多用户聊天demo,通过demo深入理解NIO三大组件:buffer、channel、selector

两两交换链表中的节点运行效果截图:源代码:Server端:Client端:使用时注意:(持续更新)运行效果截图:启动server端:依次启动client1、client2、client3并输入相应昵称:三个clent端各自说一句话(红框内为输入的话):源代码:Server端:package demo;import java.io.IOException;impor...

2020-03-29 12:55:35 282

转载 Java中@SuppressWarnings("unchecked")的作用

一、前言编码时我们总会发现如下变量未被使用的警告提示:上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了。这时我们可以在方法前添加 @SuppressWarnings("unused") 去除这些“感叹号”。二、 @SuppressWarings注解作用:用于抑制编译器产生警告信息。示例1——抑制单类型的警告:@SuppressWarnings...

2020-02-26 10:01:01 208

原创 不要只看每日减少的新增数量,别忘了疫情最开始的时候可能也只有几个人患病

不要只看每日减少的新增数量,别忘了疫情最开始的时候可能也只有几个人患病

2020-02-23 15:45:23 730

原创 结合计算机底层分析 “线程安全性的原理分析”(CPU高速缓存、缓存一致性、总线锁和缓存锁、缓存一致性协议、MESI协议、重排序、JMM等)

线程安全性的原理分析写在前面从硬件层面了解可见性的本质CPU高速缓存写在前面一段代码引来的思考:为什么程序一直走不出Thread_One的while循环呢?public class Test{ public static boolean threadOneFlag = true; public volatile static boolean threadTwoFlag =...

2020-02-16 16:35:21 641 1

原创 Java并发——Synchronized关键字和锁升级,详细分析偏向锁和轻量级锁的升级

Synchronized关键字详解synchronized的基本认识漫谈对象存储(仅针对于hotspot虚拟机)锁的存储synchronized锁的升级偏向锁轻量级锁重量级锁synchronized的基本认识数据不安全性的本质在于:共享数据存在并发操作jdk1.6对synchronized进行了优化,引入了偏向锁和轻量级锁的概念。synchronized有三种加锁的方式,不同的修饰类型,...

2020-02-15 15:56:53 363

原创 深度好文《睡觉是在为国家做贡献?NO!》

睡觉是在为国家做贡献?不对,你“睡觉”做了三件事情:1. 成就了那些“不睡觉”的人;2. 对自己不负责;3.只能说不给国家添乱,但不能说做贡献。其实政府提倡的是不出门或者少出门。那些宣扬“睡觉就是在为国家做贡献”的人更多的是在短视频上圈粉。这部分人或以两口子吵架的对话来表现,或者编写歌谣、也有人做成了动画。躺在床上看这些短片的人觉得自己睡觉的样子很伟大,认为大家都在睡觉,然后...

2020-02-13 11:23:54 1805

原创 算法精讲-leetcode24-两两交换链表中的节点

两两交换链表中的节点题目描述代码示例(解法一)复杂度分析:代码示例:代码示例(解法二)节点交换思路复杂度分析:代码示例:运行结果leetcode题目链接题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3....

2020-02-12 12:05:17 213

原创 算法精讲-leetcode23-合并K个排序链表**

合并K个排序链表题目描述解题思路代码示例运行结果题目描述合并 k 个排序链表,返回合并后的排序链表。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6解题思路链表两两合并,最终剩下一个链表就是所需结果。合并方式为:代码示例...

2020-02-11 21:42:13 157

原创 算法精讲-leetcode20-有效的括号

有效的括号题目描述解题思路代码示例运行结果题目描述给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入...

2020-02-11 12:23:16 148

原创 算法精讲-leetcode19-删除链表的倒数第N个节点

删除链表的倒数第N个节点题目描述解题思路代码示例运行结果题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.解题思路代码示例public class Test { public stat...

2020-02-11 08:42:19 767

原创 算法精讲-leetcode18-四数之和**

四数之和题目描述解题思路代码示例运行结果题目描述题目描述:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。给定数组 ints = [1, 0, -1, 0, -2, 2],和 target = 0。输出:[-2,...

2020-02-11 08:41:45 171

原创 算法精讲-leetcode17-电话号码的字母组合

电话号码的字母组合题目描述解题思路代码示例运行结果题目描述题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].解题思路递归循环调用,每次获取输入字符串...

2020-02-10 17:49:29 284

原创 算法精讲-leetcode16-最接近的三数之和

最接近的三数之和题目描述解题思路代码示例运行结果题目描述题目描述:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (...

2020-02-10 08:46:41 246

原创 算法精讲-马拉车算法(Manacher's Algorithm)-查找最长回文子串

马拉车算法(Manacher's Algorithm)写在前面预处理计算最长回文子串长度计算最长回文子串起始索引计算p数组代码示例写在前面一般在查找最长回文子串时,更多的通过扩展中心解法,这种解法的时间复杂度为预处理计算最长回文子串长度计算最长回文子串起始索引计算p数组代码示例...

2020-02-09 11:57:57 684 1

原创 算法精讲-leetcode15-三数之和为0

盛最多水的容器题目描述解题思路代码示例运行结果题目描述题目描述:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:输入: {-1, 0, 0, 4, 1, 2, -1, -3, -2, -4};输出: [ [-4, 0, 4], ...

2020-02-05 16:39:09 502 1

原创 算法精讲-leetcode11-盛最多水的容器

盛最多水的容器题目描述解题思路代码示例运行结果题目描述题目描述:给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。示例:输入: [1,8,6,2,5,...

2020-02-05 11:15:37 302 1

原创 算法精讲-leetcode5-最长回文子串-扩展中心解法

最长回文子串题目描述解题思路代码示例运行结果题目描述 给定一个字符串 str,找到 str 中最长的回文子串。 例如:“ababcbae”的最长回文子串是“abcba”解题思路扩展中心解法:遍历整个字符串,将每个字符和字符的间隔作为“回文子串”的中心,向两侧扩展,直到左右两侧扩展字符不相同为止,即得到一个回文子串。保存整个遍历过程中得到的最长的回文子串即可注意n个字符会有n-1个...

2020-02-04 23:51:18 327 1

原创 线程的生命周期及各种状态的转换

很多地方说线程有五种状态我觉得有些笼统,在Thread类的源码中明确描述了线程共有六种状态,分别是:NEW、RUNNABLE、BLOCKED、WAITING、TIME_WAITING、TERMINATEDNEW:初始状态,线程被创建,但是还没有调用start方法RUNNABLED:运行状态,Java线程把操作系统中的就绪和运行两种状态统一为“运行中”(操作系统中就绪和运行两种状态的区别是该线...

2020-02-04 20:17:40 407 1

原创 一句话详解常见的心理学效应

三分之一效应:(人们在一条美食街,一般不会选择第一家店和最后一家店)出丑效应(十全十美的人未必是最受欢迎的,相反很优秀又有一些小缺点的人相对更受欢迎)晕轮效应(以偏概全,人们会认为长得漂亮的人会有一些不一定有的优点) 首因效应(你永远无法改变一个人对你的第一印象)近因效应(A与好朋友B需要几年,那么A对B的印象更着重在于两者交往分离前的一段时间)巴纳姆效应(一个人格测试,说的全是大众化的...

2020-02-02 22:25:37 459 1

原创 算法题精讲-leetcode3-给定字符串中无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。例如:输入:"abacded"输出:5最长字串为:"bacde"解法一:写着很简单,但是jvm运行起来在骂娘的写法//大体思路:将随给字符串拆分为若干子字符串,逐一判断所有子字符串是否字符唯一,记录字符唯一的子字符串中最长的一个的长度public class TestDemo { public static void...

2020-02-02 17:08:25 374 4

原创 海康摄像头二次开发详解,包含海康摄像头登录、海康云台控制、视频下载等功能

海康摄像头二次开发详解准备海康摄像头SDK开发下载路径:开发过程中遇到的问题记录:添加maven依赖下面代码中会出现的实体类CameraManage实体类:ControlDto实体类:加载库文件:初始化:登录控制:查询历史视频保存时间:退出登陆释放资源:完整代码:视频下载、回放、视频直播、抓图等功能准备海康摄像头SDK开发下载路径:https://www.hikvision.com/cn/d...

2020-01-20 19:56:33 6935 6

原创 异步责任链实现demo(zookeeper源码有应用这种思想)--精解demo版

应用场景现实案例:张三、李四、王五、赵六四个人结伴来到婚介所想要找对象,服务人员让他们将自己的信息填写在登记表上就可以回家了,然后登记人员根据四个人的登记表将信息录入到系统,当系统中存在人员的登记信息之后媒婆就可以替他们找对象了。逻辑拆分:先登记再找对象是一个责任链假设登记和找对象两个步骤每个步骤都是1s时间,并且该婚介所只有一个登记人员和一个媒婆四个人填完登记表之后就可以回家了,不...

2019-12-29 20:21:06 440 3

原创 深入分析代理模式——JDK动态代理和CGLib动态代理原理精解版

深入分析代理模式静态代理简单实现,可直接略过现实应用的简单案例【各个省份人员信息在不同数据源中】,通过静态代理切换数据源demo动态代理JDK动态代理使用JDK动态代理原理分析高仿真手写JDK动态代理CGLib动态代理使用CGLib动态代理原理分析JDK与CGLib两种实现方式对比漫谈代理模式与Spring代理模式利弊静态代理简单实现,可直接略过//要找对象的男孩public class ...

2019-12-28 18:13:18 379 2

原创 【算法精解】计数排序

【算法精解】计数排序**基本认识:**是一个特殊的桶排序。基于比较排序的排序方法,其复杂度无法突破nlogn 的下限,但是非比较排序却可以突破该下限,甚至达到O(n)的时间复杂度。当有n个数据时,所处的范围并不大,最大值是k,那么就划分k个桶。每个桶都存储相同的数据。这样可以省掉桶内排序的时间。**时间复杂度:**因为整个过程只涉及到扫描遍历操作,所以时间复杂度是O(n+k)。【n为元素个数...

2019-12-28 11:41:46 251 1

原创 ArrayList详解——逐行分析源码版【还差一丢丢,会尽快补上】

ArrayList详解初识ArrayList成员变量方法列表按照定义顺序介绍构造方法ArrayList(int initialCapacity)ArrayList()ArrayList()普通方法trimToSize()ensureCapacity(int minCapacity)size()isEmpty()isEmpty()contains(Object o)indexOf(Object o)...

2019-12-22 13:48:38 683 6

转载 mysql的连接方式与通信过程

要了解mysql通信协议,就要知道mysql是通过什么连接的,这个怎么考率的,mysql是应用,我们需要实现的是mysql客户端与服务端进行通信,这里好比http,所以在客户端找到服务端之前,就需要他们所处的物理机先建立起连接,就如同http建立连接之前,需要tcp先建立连接。Mysql的主要连接方式包括:Unix套接字,内存共享,命名管道,TCP/IP套接字等。有的同学可能问了,怎么这么多方...

2019-11-02 21:48:41 1284 1

原创 详解varint编码原理

什么是varint编码:简单来说varint是一种数压缩算法,其核心思想是利用bit位来实现数据的压缩。比如在java中:int param = 1234;转换为二进制为:1111011,而java中int类型占4个字节,存储方式如下:前面的21个字节空位造成了大量内存空间的浪费,如果可以对空位(0)进行压缩,那么会大大节省内存空间,如果数据在网络中传输时,也会节省大量节省网络带宽消耗...

2019-11-02 11:42:21 2285 3

原创 MySQL--存储过程--自定义函数--触发器基础语法汇总

简单的存储过程:delimiter $$ ----用命令行操作需要修改语句结束标志drop procedure if exists duan; ----如果存在duan则删除create procedure duan() ----创建 存储过程begin ----存储过程代...

2019-11-01 20:51:23 241 1

原创 学习MySql索引的数据结构,只需这一篇就够了

什么是索引呢?百度百科上的解释为: 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。简单来说:字典目录就是整个字典的索引,也就相当于目录,字典目录的作用是快速定位某一个汉字,而索引的作用是快速定位所需数据如何创建索引呢?创建索引需要两个条件,这就是:我要给谁–以什么实现方式–创建什么类型的索引1. 给谁:就是给那个字段,这里可以是一个字段,也...

2019-10-27 22:10:36 897 1

非常好用的class反编译工具,不需要安装,只需要将需要反编译的class文件拖到该反编译工具的图标上即可

非常好用的class反编译工具,不需要安装,只需要将需要反编译的class文件拖到该反编译工具的图标上即可

2019-12-22

空空如也

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

TA关注的人

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