自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 短链接算法

短链接算法原理

2022-10-19 21:08:54 420 1

原创 哈希函数有关的结构

HASH函数是怎么回事 , 为什么HashMap的时间复杂度位O(1)

2022-10-19 19:35:21 225

原创 HTTPS

HTTPS相关原理

2022-10-15 16:40:41 321

原创 应用层(一)

计算机网络应用层的概述,HTTP协议,WEB缓存

2022-09-16 14:51:31 703

原创 SQL语言的分类

SQL语言的分类

2022-09-08 14:11:11 163

原创 MySQL索引失效的场景,索引的优化,MySQL优化器

索引失效没有满足最左前缀匹配原则-联合索引like “bob%” 可以使用索引 ; like ”%bob“这是不能走索引的where语句有函数是不会走索引的;比如下面的sql;因为使用了函数之后,值会发生变化的,值发生变化了,在B+树的有序性就不一定正确,所以要进行全表扫描MySQL走不走索引不是绝对的,MySQL会去分析这个sql语句分别走什么索引好,还是不走索引走全表扫描比较好索引优化-如何建立索引为搜索,排序和分组的列建立索引考虑列中不重复的个数

2022-09-06 21:10:43 240

原创 事务的隔离性

事务的隔离级别,MVCC的原理

2022-06-25 21:20:39 2195 1

原创 MySQL的锁

根据加锁的范围,MySQL里面的锁大致可以分为全局锁,表级锁和行锁

2022-06-22 16:41:45 173

原创 MySQL的基础架构

MySQL的基础架构,查询语句的执行流程,更新语句的执行流程

2022-06-21 17:34:16 171

原创 索引下推(ICP)~联合索引妙用

索引下推简介索引下推(index condition pushdown )简称ICP,在Mysql5.6的版本上推出,用于优化查询。在不使用ICP的情况下,在使用非主键索引(又叫普通索引或者二级索引)进行查询时,存储引擎通过索引检索到数据,然后返回给MySQL服务器,服务器然后判断数据是否符合条件 。索引条件下推优化可以减少存储引擎查询基础表的次数,也可以减少MySQL服务器从存储引擎接收数据的次数。索引下推具体过程我们有一张表我们在这张表的name和age字段建立了一个联合索引,该索引的结构如下

2022-04-24 19:37:42 1183

原创 MySQL的一些索引类型和回表查询的优化

聚集索引与非聚集索引聚集索引的叶子节点就是对应的数据节点,可以直接获取到对应的全部列的数据,而非聚集索引在索引没有覆盖到对应的列的时候需要进行二次查询主键索引与普通索引当我们在列上建索引的时候,我们分为两种,当我们在主键建立索引时,我们称之为主键索引;当我们在其他列建立索引的时候,我们称之为普通索引如果一个主键被定义了,那么这个主键就是作为聚集索引,即叶子节点存储的是全部列数据如果没有主键被定义,那么该表的第一个唯一非空索引被作为聚集索引如果没有主键也没有合适的唯一索引,那么innodb内部会

2022-04-24 19:19:11 628

原创 B+树原理

一.磁盘概念当我们要找到存储在磁盘的某个数据,我们要找到相应磁道的相应扇区(注意每个扇区的大小是一样的,无论它在哪个磁道),在一般情况下,一个扇区的最小存储单元为512字节示意图:二.b树和b+树的区别B树每个节点中不仅包含数据的Key值,还有data值,而每一页的存储空间是有限的,如果data数据较大时会导致每一个节点(也就是每一页)能存储的key的数量很小,当存储的数据量很大时同时会导致B树的深度很深,高度很高,增大磁盘的IO次数,进而影响查询效率,在B+树中,所有数据节点都是按照键值大小顺

2022-04-24 16:37:07 1970

原创 如何保障有序性(零碎笔记)

如何保障有序性硬件如何保障:乱序问题如何保证特定的情况下不乱序硬件的有序性保障Java的汇编指令JVM的如何规范

2022-03-11 01:17:02 193

原创 Volatile和synchronized的底层实现原理

优先队列一.优先队列的使用背景很多情况下我们会收集一些元素,处理当前值最大的元素,然后再收集更多的元素,再处理当前键值最大的元素,如此这般。例如:你有一能够同时运行多个应用程序的电脑。这是通过为每个应用程序的事件分配一个优先级,并总是处理下一个优先级最高的事件来实现的。在这种情况下,一个合适的数据结构应该支持两种操作:删除最大元素和插入元素。这种数据类型叫做优先队列。我们的堆排序也是基于优先队列实现的。...

2022-03-10 12:49:18 1017

原创 容器(零碎笔记)

二叉查找树定义定义:一棵二叉查找树(BST)是一颗二叉树,其中每个节点都含有一个Comparable的键(以及相关联的值)且每个结点的键都大于其左子树的任意结点的键而小于右子树的任意结点的键...

2022-03-09 12:44:34 97

原创 锁的使用(零碎笔记)

启动线程的三种方式线程就是一个程序里不同的执行路径通过继承Thread通过实现Runnable接口Executors.newCachedThrad(线程池启动,他里面启动线程的方式是依赖前面两种的)关于线程的方法sleep:表示调用这个方法的线程休眠一段时间,这段时间里,该线程不会被cpu调度yield:表示该线程离开一会,在cpu中他会进入一个等待队列,但是他下一次还是可能被cpu调度,只是可能性比较小join:在自己的线程里调用该方法是没有意义的,他应该在自己的线程里调用别的线程的

2022-03-07 09:48:33 308

原创 ThreadLocal原理剖析

Thread原理剖析及内存泄漏详细分析

2021-12-19 19:50:04 218

原创 快速排序(包括三向切分的快速排序)

快速排序一.对比归并排序和快速排序快速排序是一种分治的排序算法。它将一个数组分成两个子数组,将两部分独立地排序。快速排序和归并排序是互补的:归并排序将数组分成两个子数组分别排序,并将有序的子数组归并以将整个数组排序;而快速排序是当两个子数组都有序的情况时整个数组也就自然有序了。归并排序递归调用发生在处理整个数组之前,快速排序递归调用发生在处理整个数组之后。在归并排序中,一个数组被等分成两半;在快速排序中,切分的位置取决于数组的内容。二.代码public class Quick { publi

2021-08-10 15:38:27 295

原创 归并排序

归并排序一.思想要将一个数组排序,可以先(递归地)将它分成两半分别排序,然后将结果归并起来。归并就是将两个有序的数组归并成一个更大的有序数组。二.原地归并的抽象方法实现归并一种直截了当的方法就是将两个不同的有序数组归并到第三个数组中,但是,当用归并将一个大数组排序时,需要进行很多次归并,如果每次在归并都创建一个新数组来存储排序结果会带来问题。所以我们用在归并算法类中定义一个辅助数组aux来临时存储排序数组的值,我们先把数组的值复制到aux数组中,然后再把两个有序的数组归并回原来的数组中,代码如下:

2021-08-09 23:58:44 89

原创 初级算法排序(选择排序,插入排序,希尔排序)

初级算法排序(选择排序,插入排序,希尔排序)选择排序简介选择排序就是找到数组中最小的那个元素,然后将该元素和数组的第一个元素交换。然后在剩下的数组(除去第一个元素)找到最小的元素,将他与第二个元素交换,然后继续将剩下的数组(除去第一个,第二个元素,即除去已经排序好的元素)继续执行上述操作直到所有元素排序完毕。代码(这里用到了之前的排序算法模板)public class Selection { /** * 选择排序(升序) * @param a */

2021-08-09 16:32:28 81

原创 排序的算法类模板

初级排序算法(选择排序)

2021-08-07 15:34:48 150

原创 Spring5系列(IOC的使用)

Spring5系列(IOC的使用)spring5的下载地址什么是IOC?控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理使用 IOC 目的:为了耦合度降低ioc的基本使用在spring-framework-5.2.13.RELEASE文件中的lib目录中找到spring5的相关jar包,并导入到idea的lib目录下,如下:创建普通类,在这个类创建普通方法创建 Spring 配置文件bean1.xml,在配置文件(bean1.xml)配置创建的对象进行测试代

2021-04-01 11:31:46 169 1

空空如也

空空如也

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

TA关注的人

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