![](https://img-blog.csdnimg.cn/3ad31609907b402fa9b4fd5a481d4f28.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
集合框架
文章平均质量分 93
集合可以看作是一种容器,用来存储对象信息。
冬日追梦少年
越努力,越幸运!
展开
-
集合框架之Vector
为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列等。最常见的同步容器就是Vector和Hashtable了,那么,同步容器的所有操作都是线程安全的吗?这个问题不知道你有没有想过,本文就来深入分析一下这个问题,一个很容易被忽略的问题。1同步容器在Java中,同步容器主要包括2类: 1、Vector、Stack、HashTable 2、Collections类中提供的静态工厂方法创建的类 本文拿相对简单的Veco原创 2022-01-07 16:54:22 · 91 阅读 · 0 评论 -
集合框架之ArrayList源码解析
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。原创 2022-01-07 11:23:01 · 87 阅读 · 0 评论 -
集合框架之ArrayList
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。转载 2022-01-07 10:55:54 · 107 阅读 · 0 评论 -
集合框架之ConcurrentHashMap底层原理
多线程下 HashMap 有什么问题?在上一篇文章中,已经讲解了 HashMap 1.7 死循环的成因,也正因为如此,我们才说 HashMap 在多线程下是不安全的。但是,在JDK1.8 的 HashMap 改为采用尾插法,已经不存在死循环的问题了,为什么也会线程不安全呢?我们以 put 方法为例(1.8),假如现在有两个线程都执行到了上图中的划线处。当线程一判断为空之后,CPU 时间片到了,被挂起。线程二也执行到此处判断为空,继续执行下一句,创建了一个新节点,插入到此下标位置。然后,线程一原创 2022-01-07 10:11:13 · 105 阅读 · 0 评论 -
集合框架之ConcurrentHashMap & Hashtable
上次面试呀,我发现面试官对我的几个回答还是不够满意,觉得还是有点疑问,我就挑几个回答一下。16是2的幂,8也是,32也是,为啥偏偏选了16?我觉得就是一个经验值,定义16没有很特别的原因,只要是2次幂,其实用 8 和 32 都差不多。用16只是因为作者认为16这个初始容量是能符合常用而已。Hashmap中的链表大小超过八个时会自动转化为红黑树,当删除小于六时重新变为链表,为啥呢?根据泊松分布,在负载因子默认为0.75的时候,单个hash槽内元素个数为8的概率小于百万分之一,所以将转载 2022-01-06 17:21:52 · 94 阅读 · 0 评论 -
集合框架之HashMap默认容量
集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定不陌生。原创 2022-01-06 15:31:15 · 352 阅读 · 0 评论 -
集合框架之HashMap为什么线程不安全
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步原创 2022-01-06 11:38:38 · 82 阅读 · 0 评论 -
集合框架之HashMap
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步转载 2022-01-06 11:03:27 · 107 阅读 · 0 评论 -
数据结构(堆)
堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。转载 2022-01-05 11:24:46 · 133 阅读 · 0 评论 -
Java集合框架
Java集合框架(Java Collections Framework,JCF)是为表示和操作集合而规定的一种统一的标准的 体系结构 。 任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。转载 2022-01-05 09:46:23 · 103 阅读 · 1 评论