集合框架
半张饭卡
北漂一族
展开
-
面试官问我同步容器(如Vector)的所有操作一定是线程安全的吗?我懵了!
点击查看转载 2020-07-21 10:17:27 · 155 阅读 · 0 评论 -
为啥用枚举,枚举有哪些用法?
https://mp.weixin.qq.com/s/U5FkL9zyzr0PkAp8MJJ8BQ转载 2020-07-20 16:30:45 · 108 阅读 · 0 评论 -
JDK1.7 transfer方法与JDK1.8putVal方法解析
先上源码 1 void transfer(Entry[] newTable, boolean rehash) { //获取新Entry数组的容量 2 int newCapacity = newTable.length; //遍历旧的Entry数组 3 for (Entry<K,V> e : table) { // e的下一个entry不为null则循环(链表上的循环) 4原创 2020-07-16 09:14:18 · 402 阅读 · 0 评论 -
ArrayLists知识点总结
1. jian简述 ArrayList底层是用数组实现的存储。特点是查询效率高,增删效率低,线程不安全,平常开发使用频率很高。 2. 为什么线程不安全还使用它? 因为平常开发所使用的场景中,大多数都是用来查询,不会设计太频繁的增删;如果涉及频繁的增删,可以使用LinkedList;如果需要线程安全就是用Vector,这就是三者的区别。 不存在一个集合工具是查询效率又高,增删效率又高,还是线程安全的。因为数据结构的特性就是优劣共存的,想找个平衡点很难,牺牲了性能,那就安全;牺牲了安全那就快速。 3. Arra原创 2020-07-14 17:28:01 · 285 阅读 · 0 评论 -
HashMap面试题目
HashMap 1.简述 HashMap是由数组和链表组合构成的数据结构,数组里每个地方豆村了Key-Value这样的实例,jdk1.7叫做Entry,jdk1.8叫做Node。初始化是所有位置都是null,put插入的时候会根据Key的hash函数去计算出一个index值,比如index是 2 ,就将这个Key-Value插入到数组下标为2 的位置。 2.为什么需要链表,链表又是什么样子的? 由于数组的长度是有限的,在有限的数组长度使用哈希,不同的key 经过hash会hash到同一个值上,这样就形成了链原创 2020-07-09 17:58:47 · 2211 阅读 · 0 评论