自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring源码分析一(循环依赖)

这篇文章将主要介绍循环依赖的解决细节,以便于解决一些常见的面试题的细节部分。能够获取到的知识点包括以下:1,spring循环依赖是如何解决的?2,为什么是三级缓存,只有二级行不行?3,描述其中一些细节,bean的生命周期。便于读者去能够debug源码,会把重点的debug细节点,贴出来,感兴趣的读者可以试着去本地构建循环依赖,一步步分析每个部分做了什么事情, 下面主要阐述一些结论。下面的代码截取来自SpringBoot 5.1.8版本建议使用条件断电,如图下面Conditions的内容,我们只需要

2021-08-08 16:48:42 174 1

原创 数据结构与算法 -- 基础篇

本文主要用于记录学习过程中的一些总结;适用于一些刚学习数据结构和算法的同学,能够给予一些概括性认识,而且从下面的一些算法题中能够获得一些对于算法题目常用解题思路。如果能够对你有些帮助,是我之幸!接下来,将一共分为三部分来介绍如下内容:1,基础数据结构概念介绍;数据结构通常是用来描述数据之间的关系,E - element元素,R-relation,用二元组(E,V)可以代表数据结构的一种抽象,描述的是一种元素集合和元素之间的关系组成的一个数据结构,依据不同的数据关系,便产生我们所熟知的数组,栈,队列,线

2021-07-11 10:43:39 1365

原创 ConcurrentHashMap源码详解

总览1、ConcurrentHashMap基础介绍线程安全版本的hashmap,在多线程环境下通过加锁来保证线程安全,相比于同样线程安全的HashTable,有更细粒度的锁,提高并发性能;基础的API操作同HashMap一致,底层锁机制保证了并发环境下的线程安全特性。2、源码相关重要内部类介绍为了更好理解源码的细节,需要对源码关键API涉及到的内部类、属性、方法做前置的介绍;2.1、内部类介绍:static class Node<K,V> implements Map.Entry&l

2020-12-03 17:07:02 129

原创 HashMap源码剖析(二)

继上一篇文章hashmap源码剖析的第一部分,由于树化的过程较为复杂,放到此篇来进行详细详解,熟读此篇文章,可以同时掌握TreeMap和LinkedList等数据结构;同样,论述方式按照上一篇文章的风格,注:代码均来自jdk8的hashmap源码1,详尽注释源码部分;2,选取部分复杂流程作图解释;3,总结成述;从treeifyBin(tab, hash);作为入口开始分析:// 入参 tab hash桶数组,该hash值所对应的位置需要树化final void treeifyBin(Node&l

2020-08-05 17:12:53 110

原创 HashMap源码剖析(一)

简介本文从jdk1.8源码层面介绍HashMap的元素插入和扩容的过程分析,树形化的部分比较复杂,本文此处跳过,同时也介绍了jdk1.8作为并发容器的可能存在的影响;为了便于读者的阅读友好,已控制好注释内容及代码缩进避免水平滚动;注释已尽可能详尽,如果不懂的地方可以着重看下注释,熟悉的部分可直接跳过,全文阅读10分钟。基础属性介绍: // 默认容量,常量值16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16

2020-07-14 21:33:23 134

空空如也

空空如也

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

TA关注的人

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