自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring源码阅读(一)IOC容器

IOC容器概述 如果合作对象的的引用或依赖关系的管理由具体对象来完成,会导致代码的高度耦合和可测试行的降低。这些依赖关系可以通过把对象的依赖注入交给IOC容器来完成,解耦代码的同时提高代码的可测试性。 如果对面向对象系统的中的对象进行简单分类,会发现一部分是数据对象外,其他很大一部分对象是用来处理数据的,这些对象并不常发生变化,是系统中基础的部分(如Service类)。在很多情况下,这些对象以单例的形式起作用就可以满足应用的需求。同时,这些对象之间的相互依赖关系也是比较稳定的,一般不会随着应用的运行状态的改

2020-09-13 21:12:58 114

原创 JDK1.8源码阅读(六):LinkedList

一、初识LinkedList LinkedList类图设计 LinkedList继承了AbstractSequentialList,从Sequential这个单词可以看出,该抽象类实现的是顺序访问的结构,这和链表有关。 LinkedList实现了Deque这个接口,这个类名字的由来是“double ended queue”,也就是双向队列,即从头部和尾部都可以进行队列的操作。 综上,LinkedList是一个双向链表的数据结构。 二、源码阅读 1、成员变量 // list中的元素个数 transient

2020-09-11 21:57:54 92

原创 JDK1.8源码阅读(五):ArrayList

一、初识ArrayList 顾名思义,ArrayList的结构实际就是一个数组。所以它的特性很明显,插入一个元素的时候,是耗时是一个常量时间O(1),在插入n个元素的时候,需要的时间就是O(n)。 ArrayList类图设计: ArrayList实现了RandomAccess接口:意味着其支持快速(通常是固定时间)随机访问。 ArrayList实现了Cloneable接口,意味着它能被克隆。 ArrayList实现了java.io.Serializable接口,意味着 它支持序列化。 二、源码解析 1

2020-09-11 21:42:57 88

原创 JDK1.8源码阅读(四):TreeMap

一、初识TreeMap 先看一下TreeMap的类图设计: TreeMap 是一个 有序的key-value集合,它是通过 红黑树 实现的。 TreeMap 继承于AbstractMap,所以它是一个Map,即一个key-value集合。 TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。 TreeMap 实现了Cloneable接口,意味着它能被克隆。 TreeMap 实现了java.io.Serializable接口,意味着 它支持序列化。

2020-09-06 22:46:53 92

原创 JDK1.8源码阅读(三):LinkedHashMap

一、初识LinkedHashMap LinkedHashMap可以认为是HashMap+LinkedList,即它既使用HashMap操作数据结构,又使用LinkedList维护插入元素的先后顺序。 先看一下LinkedHashMap类图设计: LinkedHashMap的基本实现思想是多态,由上图可以看到LinkedHashMap继承自HashMap,所以也就继承了HashMap中所有非private的方法,而在下图中我们可以看到LinkedHashMap中并没有什么操作数据结构的方法,也就是说Link

2020-08-28 16:14:08 56

原创 JDK1.8源码阅读(二):ConcurrentHashMap

一、HashMap类图结构 先看一下HashMap的类图设计,类图结构如下 可以看到ConcurrentHashMap继承自AbstractMap,实现了ConcurrentMap、Serializable和Cloneable。Serializable接口表示HashMap实现了的序列化,Cloneable接口表示可以合法的调用clone(),如果不实现该接口而调用clone,会报CloneNotSupportedException。 二、JDK1.7的实现 1.存储结构 ConcurrentHashM

2020-08-27 16:20:05 109

原创 JDK1.8源码阅读(一):HashMap

一、HashMap类图结构 我们先看一下HashMap的类图设计,类图结构如下 可以看到HashMap继承自AbstractMap,实现了Serializable和Cloneable。Serializable接口表示HashMap实现了的序列化,Cloneable接口表示可以合法的调用clone(),如果不实现该接口而调用clone,会报CloneNotSupportedException。 二...

2020-08-27 16:02:38 92

原创 分布式锁的三种实现方式及对比

分布式锁的三种实现 一、为什么要使用分布式锁 为了保证一个方法或属性在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLock或Synchronized)进行互斥控制。在单机环境中,Java中提供了很多并发处理相关的API。 但是,随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多...

2020-04-22 23:26:01 393

空空如也

空空如也

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

TA关注的人

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