• Collection-3

        前序:队列是平常做业务应用比较少的结构,但是还是要看一下相关的实现方式,特别是JUC包中的同步器,核心原理就是队列和状态的控制。线程安全的集合框架打算单独拿个篇幅整理,由于比较特殊,而且自己也比较薄弱的部分,所以应该会解释的多一些。     2. 集合框架      2.3 Queue 是在

    [Read More...]
  • 为什么会有Hash类型的Map?

    简单理解:Map本身是存放key和value信息的地方,若想获取某个key1对应的value,即map.get(key1),常规思维就是拿key1和所有的key一个一个去比较,若相同,则返回对应的value。假如有10000个key,要比较10000次吗?这样的效率难道不是很低下的吗?所以要改进,假如我们对key1进行某种运算直接能得到对应value的存储位置,来直接获取到value,这样不是最爽

    [Read More...]
  • JDK-Hash冲突

    解决hash冲突的办法 1)开放定址法(线性探测再散列,二次探测再散列,伪随机探测再散列) 2)再哈希法 3)链地址法 4)建立一 公共溢出区

    [Read More...]
  • ArrayList分析

    ArrayList Object oldData[] = elementData;//为什么要用到oldData[] 乍一看来后面并没有用到关于oldData, 这句话显得多此一举!但是这是一个牵涉到内存管理的类, 所以要了解内部的问题。 而且为什么这一句还在if的内部,这跟elementData = Arrays.c

    [Read More...]
  • Collection-2

    前序:此篇介绍Map和Set,为什么放在一起,通过了解可以知道,大多数的Set内部实现都是Map,Map里的KeySet就是个Set,而Value是假值,同一个Object。 为什么说是大多数,因为有特例JUC包里有个CopyOnWriteArraySet内部是CopyOnWriteArrayList Map相关的问题主要是HashMap的数据结构,哈希算法、扩容机制、线程安全、是不是有序的,有序

    [Read More...]
  • Collection-1

    前序:基础系列下一篇章是集合系列,这系列主要是想把各个集合的特点和源码核心实现部分的原理深入研究明白,当然前面的基础系列也会根据情况继续延续,我所整理的除了常用的知识点,基本都是我遇到的比较典型的问题积累。 2. 集合框架  Collection(List、Set、Queue -> ArrayList/LinkedList、HashSet/COWArraySet/Concurren

    [Read More...]