![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
沉着的卷心菜
这个作者很懒,什么都没留下…
展开
-
String.equals()源码分析
String.equals()原创 2017-11-22 10:11:37 · 4291 阅读 · 0 评论 -
HashMap.put(K key, V value)源码分析
HashMap.put(K key, V value)源码分析原创 2017-11-22 12:05:58 · 1427 阅读 · 0 评论 -
字transient和volatile小结
transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下。transienttransient是类型修饰符,只能用来修饰字段。在对象序列化的过程中,标记为transient的变量不会被序列化。示例:class Test {transient int a; // 不会被持久化in转载 2017-12-11 13:56:29 · 145 阅读 · 0 评论 -
AbstractQueuedSynchronizer部分源码解析
/** * 加锁 */ public final void acquire(int arg) { // 首先尝试获取,如果获取成功直接退出;如果获取失败,即竞争锁失败,则创建Node,并添加到同步队列尾部。 if (!tryAcquire(arg) && acquireQueued(add...原创 2019-04-22 15:46:10 · 85 阅读 · 0 评论 -
ConcurrentHashMap_jdk1.7
public ConcurrentHashMap() { // 默认Table容量为16,默认扩容因子为0.75,默认并发级别为16(即分段锁个数) this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_CONCURRENCY_LEVEL); } public ConcurrentHas...原创 2019-04-24 16:00:31 · 138 阅读 · 0 评论 -
ConcurrentHashMap_jdk1.8
与1.7相比的重大变化1、取消了segment数组,直接用table保存数据,锁的粒度更小,减少并发冲突的概率。2、存储数据时采用了链表+红黑树的形式,纯链表的形式时间复杂度为O(n),红黑树则为O(logn),性能提升很大。什么时候链表转红黑树?当key值相等的元素形成的链表中元素个数超过8个的时候。主要数据结构和关键变量Node类存放实际的key和value值。sizeCtl:负数...原创 2019-04-24 16:04:17 · 124 阅读 · 0 评论 -
ArrayBlockingQueue源码解析
ArrayBlockingQueue源码解析转载 2019-04-25 10:53:18 · 136 阅读 · 0 评论 -
SpringAOP源码解析(AnnotationAwareAspectJAutoProxyCreator 注册)
下面的源码分析基于Spring版本5.0.6.RELEASE目录分析创建和注册AnnotationAwareAspectJAutoProxyCreator的流程1、瞧瞧这个注解都有啥2、接下来重点研究AnnotationAwareAspectJAutoProxyCreator的创建过程3、我们来展开分析一下做为beanPostProcessor后置处理器,究竟做了哪些工...原创 2019-06-28 15:19:50 · 398 阅读 · 0 评论