源码
文章平均质量分 86
loading······
这个作者很懒,什么都没留下…
展开
-
Spring源码分析(一)
Spring源码分析(一)前言 本人在研究生时期的项目一直是使用的C++,到毕设时导师给定的课题需要用Java实现,所以当时简单的学了SSM框架。当时也仅限于知道Spring的简单的使用,找工作用的也是C/C++,可是入职后三个月为了适应公司的需求,“自愿”转了java,由于有研究生时候的经验,所以相比于其他转java的同事,我情况可能还是比较好的。 转java后也用的都是公司现成的框架,项目都是现成的,骨架都早已搭好,只需会基本的if-else,再加上照着之前的代码框架写就行了,一直也没时间原创 2021-07-21 23:48:42 · 181 阅读 · 0 评论 -
HashMap线程安全问题
ConcurrentHashMap使用Segment[]+HashEntry[]的数据结构;(为什么使用这种结构?)A:1.JDK1.7中,ConcurrentHashMap从过二次hash的方式(Segment -> HashEntry)能够快速的找到查找的元素2.Segment是一种可重入锁(ReentrantLock),在ConcurrentHashMap里扮演锁的角色,将一个大的table分割成多个小的table进行加锁。为什么在获取索引的与运算中国:segment使用hashcode原创 2020-11-29 18:46:47 · 292 阅读 · 1 评论 -
HashMap基本的实现流程之扩容
本文接上篇:《HashMap最基本的实现流程(源码角度)》前言上篇主要说了HashMap的put操作实现的主流程,分析了源码中某些关键步骤之所以那样写的原因;对于一些分支流程没有过多展开,这里就填一下扩容的坑;扩容这里先把涉及到扩容的地方的源码贴一下: void addEntry(int hash, K key, V value, int bucketIndex) { if ((size >= threshold) && (null != table[原创 2020-11-20 22:13:28 · 809 阅读 · 2 评论 -
HashMap最基本的实现流程(源码角度)
前言HashMap,之前准备找工作的时候,在各大面试宝典中都会看到对它的讲解,参加工作之后,作为一个小小的码农,写BUG过程中用到的最多的容器也是HashMap,可是一直没有对HashMap真正的学习过,一直处于一种模糊的状态,今天由于业务需求需要了解MurmurHash,在搜索过程中就慢慢偏离的圆轨道,又遇到了HashMap,这次一定要给他整明白了,并且以此博文来进行总结、记录,以为巩固。预备知识HashMap底层使用的数据结构是?数组。所以HashMap的特性会受到数组特性的影响;① 数组在原创 2020-11-16 22:05:01 · 770 阅读 · 3 评论