摘要:
我们分析下JDK里面的Stack源码,会发现其实非常简单 首先,栈的特点是FILO(First In Last Out) 其次,底层的数据结构我们采用数组的方式 来,看几个关键的源码,一目了然 存: 取: 栈顶弹出元素 阅读全文
摘要:
来吧,我们看看 ArrayList:线程不安全,效率高,常用Vector:线程安全的,效率低我们看Vector的源码: public synchronized void ensureCapacity(int minCapacity) { if (minCapacity > 0) { modCount 阅读全文
摘要:
1,首先,来看看其他几个相关的类 Hashtable是线程安全的,但效率低HashMap是线程不安全的,但效率高Collections.synchronizedMap(),工具类提供了同步包装器的方法,来返回具有线程安全的集合对象性能依然有问题 public static <K,V> Map<K,V 阅读全文
摘要:
此处,我们好好谈谈HashMap 主要关注几个点: 1,初始化大小是16,如果事先知道数据量的大小,建议修改默认初始化大小。 减少扩容次数,提高性能 ,这是我一直会强调的点2,最大的装载因子默认是0.75,当HashMap中元素个数达到容量的0.75时,就会扩容。 容量是原先的两倍3,HashMap 阅读全文
摘要:
HashSet的存储原理或者工作原理,主要是从如何保证唯一性来说起。 这里面主要有3个问题,需要回答? 第一,为什么要采用Hash算法?有什么优势,解决了什么问题? 第二,所谓哈希表是一张什么表? 第三,HashSet如何保证保存对象的唯一性?会经历一个什么样的运算过程? 首先,我们要明确一点,Ha 阅读全文