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