自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 排序算法 内排序

排序算法一级目录二级目录三级目录一级目录二级目录三级目录一遍记住Java常用的八种排序算法与代码实现KaelQ JAVA高级架构 2019-05-091.直接插入排序经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有序序列将第三个数插入进去,构成一个新的有序序列。对第四个数、第五个数……直到最后一个数,重复第二步。如何写写成代码:首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次不用

2020-09-29 09:16:27 281

转载 mysql binlog redolog undolog 日志

mysql binlog redolog undolog 日志概念说明binlogbinlog使用场景binlog刷盘时机binlog日志格式redo log为什么需要redo logredo log基本概念redo log记录形式redo log与binlog区别undo log日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志( binlog )和事务日志

2020-09-11 20:00:25 349

转载 MySQL 的 crash-safe 原理解析

MySQL 的 crash-safe 原理解析一、前言二、WAL机制(Write Ahead Log)三、核心日志模块1、重做日志 redo log2、回滚日志 undo log3、归档日志 binlog四、两阶段提交五、组提交六、数据恢复流程七、总结MySQL作为当下最流行的开源关系型数据库,有一个很关键和基本的能力,就是必须能够保证数据不会丢。那么在这个能力背后,MySQL是如何设计才能保证不管在什么时间崩溃,恢复后都能保证数据不会丢呢?有哪些关键技术支撑了这个能力?本文将为我们一一揭晓。一、前言

2020-09-11 09:01:37 652 1

转载 Reference强 软 弱 虚

Java四种引用包括强引用,软引用,弱引用,虚引用。https://www.cnblogs.com/yw-ah/p/5830458.html软引用、弱引用、虚引用-他们的特点及应用场景https://www.jianshu.com/p/825cca41d962Java四种引用级别由高到低依次为:强引用,软引用,弱引用,虚引用。强引用:发生 gc 的时候不会被回收。软引用:有用但不是必须的对象,在发生内存溢出之前会被回收。弱引用:有用但不是必须的对象,在下一次GC时会被回收。虚引用(幽灵引用/

2020-09-08 21:51:00 111

转载 Lambda表达式

Lambda表达式例1、用lambda表达式实现Runnable例2、使用Java 8 lambda表达式进行事件处理例3、使用lambda表达式对列表进行迭代例4、使用lambda表达式和函数式接口Predicate例5、如何在lambda表达式中加入Predicate例6、Java 8中使用lambda表达式的Map和Reduce示例例6.2、Java 8中使用lambda表达式的Map和Reduce示例例7、通过过滤创建一个String列表例8、对列表的每个元素应用函数例9、复制不同的值,创建一个子列

2020-09-08 07:46:36 124

转载 mysql 事务实现原理

mysql 事务实现原理一、 开篇二、 redo log 与 undo log介绍1. redo log2.undo log三、 mysql锁技术以及MVCC基础1. mysql锁技术2. MVCC基础四、 事务的实现1.原子性的实现1.1 undo log 的生成1.2 根据undo log 进行回滚2.持久性的实现3.隔离性实现a. READ UNCOMMITTED(读不加锁,写加写锁)b. READ COMMITTED(读加读锁,写加写锁)c. REPEATABLE READ(读写锁 或 MVCC)1

2020-09-07 08:27:25 125

转载 NIO Reactor模型

NIO Reactor模型Reactor三种模型单线程模型多线程模型主从多线程模型Netty线程模型1 线程组2 ChannelPipeline3 异步非阻塞Reactor模式是基于事件驱动开发的,服务端程序处理传入多路请求,并将它们同步分派给请求对应的处理线程,Reactor模式也叫Dispatcher模式,即I/O多路复用统一监听事件,收到事件后分发(Dispatch给某进程),这是编写高性能网络服务器的必备技术之一。Reactor模式以NIO为底层支持,核心组成部分包括Reactor和Ha

2020-08-18 07:24:24 404

原创 新建对象

是为了将文章类型设置为装载

2020-07-20 09:05:47 82

转载 ThreadLocal 源码分析

ThreadLocal 源码分析一、背景二、什么是ThreadLocal?三、大致的实现思路是怎样的?四、ThreadLocalMap的源码实现1.存储结构2.为什么要弱引用3. 类成员变量与相应方法4. 构造函数5. 哈希函数6. getEntry方法一、背景ThreadLocal源码解读,网上面早已经泛滥了,大多比较浅,甚至有的连基本原理都说的很有问题,包括百度搜索出来的第一篇高访问量博文,说ThreadLocal内部有个map,键为线程对象,太误导人了。ThreadLocal非常适合对Java多

2020-07-14 09:18:48 117

转载 ZooKeeper 会话管理 Session

这里写目录标题

2020-07-12 17:20:42 505

转载 ConcurrentHashMap 1.8 源码分析

ConcurrentHashMap源码分析一级目录二级目录三级目录一级目录二级目录三级目录

2020-07-12 17:13:12 274

转载 分布式事务 解决方案

如何选择分布式事务解决方案?概述事务是一组不可分组的操作集合,这些操作要么都成功执行,要么都取消执行。最典型的需要事务的场景是银行账户间的转账:假如 A 账户要给 B 账户转账 100 元,那么 A 账户要扣减 100 元,B 账户要增加 100 元,这两个账户的数据变更都成功才可算作转账成功。更严格来说,可以用 ACID 四个特性表述事务:Atomicity:原子性,事务中的所有操作要么都成功执行,要么都取消执行,不能存在部分执行,部分不执行的状态。Consistency:一致性,举个例子简单的理

2020-07-08 07:45:01 237

转载 线程池 ThreadPoolExecutor

线程池 ThreadPoolExecutorThreadPoolExecutor构造方法2.线程池执行流程3.常见的线程池1.FixedThreadPool2.SingleThreadExecutor3.CachedThreadPool4. ScheduledThreadPool4.Java中的阻塞队列5.RejectedExecutionHandler:饱和策略6.扩展线程池自定义线程创建ThreadFactory提供了beforeExecute()、 afterExecute()和terminated(

2020-07-05 11:15:02 172

转载 mysql 查询 语法 group by

mysql 查询语法数据的准备如下:一、查询语句的基本语法二、在单表上查询数据2.1、查询所有字段 select *2.2、按条件查询(1) 比较运算符(><, between and)(2)逻辑运算符(! not, || or, && and)(3)模糊查询(like % _)(4)空值查询三、使用聚合函数查询数据3.1、group by 分组查询数据指从数据库中获取所需要的数据。查询数据是数据库操作中最常用,也是最重要的操作。用户可以根据自己对数据的需求,使用不同的查询方

2020-07-02 23:11:16 745

转载 kafka 数据可靠性 深度解读

kafka数据可靠性深度解读一、概述二、Kafka体系结构三、高可靠性存储分析1.Kafka文件存储机制2.复制原理和同步方式3.ISR4.数据可靠性和持久性保证5.关于HW的进一步探讨6.Leader选举7.Kafka的发送模式四、高可靠性使用分析1.消息传输保障2.消息去重3.高可靠性配置BenchMark一、概述Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如C

2020-07-01 08:45:02 520

原创 单例模式 多种实现 DCL volatile

单例模式单例模式三个主要特点:实现方式1. 程序启动的时候初始化1)利用静态变量2)通过枚举类实现单例模式(解决了序列化、反射的问题)2.使用的时候初始化1)DCL(double check lock)2)利用内部类延迟加载利用枚举实现demo单例模式三个主要特点:1、构造方法私有化;2、实例化的变量引用私有化;3、获取实例的方法共有。实现方式1. 程序启动的时候初始化1)利用静态变量public class Singleton { /* * 利用静态变量来记录Single

2020-06-27 08:18:24 185

原创 volatile 可见性 防止指令重排

volatile 可见性 防止指令重排可见性什么是可见性为什么需要保证可见性怎样保证可见性详细说明:缓存一致性协议指令重排指令重排遵循的原则as-if-serial原则happens-before原则指令重排序导致的问题volatile如何实现指令重排序可见性什么是可见性可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。强制线程每次从主内存中读到变量,而不是从线程的私有内存中读取变量为什么需要保证可见性cpu内部有缓存,当需要读取数据时,会先判断

2020-06-26 12:07:52 715

原创 mysql 索引分类 创建索引 删除索引

mysql 索引分类索引分类聚集索引、非聚集索引聚集(clustered)索引非聚集索引创建索引、删除索引创建索引删除索引查看索引索引分类索引是一种将数据库中单列或者多列的值进行排序的结构。索引有两种存储类型,包括B型树(BTREE)索引和哈希(HASH)索引,其中B型树为系统默认索引方法。索引分类:普通索引、唯一索引(UNIQUE)、全文索引(FULLTEXT)、单列索引、多列索引、空间...

2020-05-03 10:46:37 184

原创 zookeeper Leader选举 投票过程

zookeeper Leader选举Zookeeper集群中的三种服务器角色Leader选举概述服务器启动时期的Leader选举1.每个Server会发出一个投票2.接收来自各个服务器的投票3.处理投票4.统计投票功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自...

2020-04-27 22:35:46 510

转载 mysql 字符串的拼接、截取、替换、查找

mysql 字符串的拼接、截取、替换、查找1、字符串的拼接1.1 CONCAT(s1,s2,...)函数1.2 CONCAT_WS(x,s1,s2,...)函数2、字符串的截取2.1 SUBSTRING(s,n,len)、MID(s,n,len)函数2.2 LEFT(s,n)、RIGHT(s,n)函数3、字符串的替换3.1 INSERT(s1,x,len,s2)函数3.2 REPLACE(s,s1...

2019-12-17 21:00:46 419

原创 mysql 索引命中规则 不命中的情况

mysql 索引命中规则多列索引 遵循:最左匹配原则不会命中索引的情况当一条sql语句提交给mysql数据库进行查询的时候需要经历以下几步1、先在where解析这一步把当前的查询语句中的查询条件分解成每一个独立的条件单元2、mysql会自动将sql拆分重组3、然后where条件会在B-tree index这部分进行索引匹配,如果命中索引,就会定位到指定的table records位置。如果...

2019-12-01 09:18:35 3151

原创 git stash save -a 引发的 Could not restore untracked files from stash 问题

因为需要切换分支开发新功能,因此需要暂时储藏当前分支feature-22,git stash -h查看了下命令说明git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet] [-u|--include-untracked] [-a|--all] [<message>]根据提示,想当然地使用了gi...

2019-11-23 13:24:52 3372

原创 mysql 事务 ACID 隔离级别 并发异常 事务提交

1. 什么是事务(Transaction)?事务是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性...

2019-11-23 12:17:45 187

原创 mysql 数据类型 及 查看表结构

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-11-23 11:32:04 566

空空如也

空空如也

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

TA关注的人

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