自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Git 操作整理

问题:解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists). 解决办法一:保留本地的更改,中止合并->重新合并->重新拉取 $:git merge --abort $:git reset --merge $:git pull 解决办法二:舍弃本地代码,远端版本覆盖本地版本(慎重) $:git fetch --all //重新拉取 $:git reset --hard origi.

2021-11-19 10:45:21 271

原创 jvm--垃圾回收机制

目录 1、如何判断“已死”: 1.1 引用计数法: 1.2 可达性分析算法 1、如何判断“已死”: 1.1 引用计数法: 引用计数法描述的算法为:给对象增加一个引用计数器,每当有一个地方引用时,计数器就+1;当引用失效时,计数器-1;当计数器为0时,说明无对象引用,也就说明对象"已死" 主流的jvm中没有选用引用计数法管理内存,主要原因是引用计数法无法解决循环依赖问题; ...

2021-11-08 16:34:36 72

原创 JVM虚拟机

1、JVM虚拟机内存区域的组成: 内存区域,指的是运行时数据区,主要由:方法区,虚拟机栈,本地方法栈,堆,程序计数器组成。 1、程序计数器: 程序计数器(Program Counter Register)是一块较小的内存空间,线程私有。记录一个行号指示器,指向下一个指令的行号,等待执行引擎读取执行。如果是native方法,计数器将为Undefined。本身不会发生OOM问题。(原因:我的理解上,因为本身存储的是一个行号,很小,线程足够多,才会发生内存不够的情况,但...

2021-11-08 15:33:25 248

原创 Spring IOC(三级缓存,循环依赖,(源码分析))

Bean容器的三个缓存: 一级缓存(singletonObjects)-256:单例,用于保存我们创建完成的bean对象。 二级缓存(earlysingletonObjects)-16:单例,用于保存我们的实例化 但是未进行属性注入及初始化的对象 三级缓存(singletonFactories)-16:单例,主要用于解决循坏依赖,存储bean对象的单例工厂。 图中为getBean方法源码: 执行顺序:1、去一级缓存首先尝试获取对象...

2021-10-20 23:48:53 257

原创 Spring AOP

代理模式:翻阅设计模式篇,代理模式 代理类型: 静态代理:委托类必须实现接口的前提下,代理类实现同样的接口 在变量中存在委托类,通过重写方法进行代理。 缺点:一个代理只能代理一种类型,编译器阶段已经确定被代理的对象。 动态代理: 运行时,通过反射机制实现动态代理。 JDK动态代理:通过对被代理类的接口的实现进行动态代理。 ...

2021-10-20 21:38:39 38

转载 Redis的过期策略和内存淘汰策略

一、过期策略(2种): 一、定期删除: redis会将过期了的缓存的key放入到独立的一个字典中,过期字段。 然后每秒10次的方式对过期字典进行扫描(贪心策略) 从过期字典中随机获取20个key,如过期 则删除,如超过1/4 重复执行。 二、惰性删除: 在客户端访问这个key的时候,redis对key的过期时间进行检查,如果过期,立即删除,...

2021-10-15 22:16:50 167

原创 mysql索引的分类

前言:索引的分类上 大致如下图所示 一、聚簇索引:根据一个字段,构建B+树,在叶子节点存储data数据。 选择条件:在索引上,首先选择主键作为索引,然后主键不存在的情况下,选择唯一且不为空的索引作为聚簇索引,最后如果也不存在,则隐式的定义一个主键作为聚簇索引 二、非聚簇索引:同样以字段构建B+树,在叶子节点存储的是数据的地址。 索引类型: 1、normal-普通索引:表示普通索引 2、unique-唯一索引:表示唯...

2021-10-12 22:05:32 288

原创 Redis专栏

一、redis的持久化方式,特点: RDB持久化:指在指定时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork(复刻)一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。 特点:存储的内容是整个数据集的所有信息。 优势:1、实际存储信息的文件只有一个。 2、可以轻松转移到其他存储介质上。 ...

2021-10-12 11:02:53 130

原创 锁升级过程

java中 对象锁的状态分为四种:无锁——》偏向锁——》轻量级锁——》重量级锁 对象的对象头信息中的锁状态标志 1、偏向锁 偏向锁是JDK6中引入的一项锁优化,大多数情况下,锁不仅不存在多线程竞争,而且总是由同一线程多次获取,为了让线程获得锁的代价更低,引入了偏向锁 偏向锁会偏向于第一个获得它的线程,如果在接下来的执行过程中,该锁没有被其他的线程获取,则持有偏向锁的线程将永远不需要同步 ...

2021-10-10 22:19:41 981

原创 集合相关专栏

问题系列: 一、hashMap、ConcurrentHashMap、hashTable区别? 1、先说HashMap和HashTable区别 主要区别HashMap线程是不安全的,HashTable线程是安全的 1、继承不同,HashMap继承于AbstractMap,HashTable继承于Dictionary 2、它们存储的键值对区别:HashMap的键可以有一个为nu...

2021-10-10 21:23:51 52

转载 对象的创建过程

编译 ——》加载——》连接——》初始化——》对象创建 主要流程: 一、编译: 经过编译,Person.java经过jvm的编译会生成一个符合Person.class的文件。 二、装载: Person.class经过装载,将类的相关信息加载到jvm的内存中,解析出的类的描述信息 会保存到Metaspace,同时生成一个代表此类的java.lang.class的对象,用作此类的访问入口。 三、连接: ...

2021-10-10 13:40:18 225

转载 SQL优化相关(explain执行计划)

1、等值匹配 where语句中的几个字段名称和联合索引中的字段完全一样,而且都是基于等号的等值匹配,这样一定会用上索引,即使where语句里写的字段的顺序和联合索引里的字段顺序不用也没关系,mysql会进行一定的优化。 2、最左匹配原则 一、全值匹配查询 由此顺序可以看出,b索引相对于整体时无序的 相对于上一个索引(a)是有序的。 1、索引为(id,name,age),查询sql where为(id,...

2021-08-31 16:22:28 44

原创 MyISAM和InnoDB索引区别

MyISAM: 表级锁、不支持事务,支持全文索引。 存储结构上: 三个文件,'.frm'-表结构文件,'.MYD'-数据文件,‘.role’-索引文件,非聚集索引。 主键索引结构:通过对col1建立主键索引,会从索引文件找到索引节点,再通过索引节点上的文件指针到数据文件中,定位具体的数据。 辅助索引结构:与主键索引结构上并无任何区别,主键Key不...

2021-08-31 14:48:24 91

空空如也

空空如也

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

TA关注的人

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