![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
八股文
文章平均质量分 60
RobertLikeDurian
这个作者很懒,什么都没留下…
展开
-
08经典问题答案记录-锁
08经典问题答案记录-锁锁的分类转载 2021-12-21 16:56:41 · 81 阅读 · 0 评论 -
07经典问题答案记录-HashMap与ConcurrentHashMap
HashMap与ConcurrentHashMapHashMap本质是数组加链表。根据key取得hash值,然后计算出数组下标,如果多个key对应到同一个下标,就用链表串起来,新插入的在前面。ConcurrentHashMap:在hashMap的基础上,ConcurrentHashMap将数据分为多个segment(段),默认16个(concurrency level),然后每次操作对一个segment(段)加锁,避免多线程锁的几率,提高并发效率HashMap不是线程安全的,ConcurrentHa转载 2021-12-16 16:51:38 · 107 阅读 · 0 评论 -
06经典问题答案记录-HashMap与Hashtable
HashMap 与HashTable的区别转载于https://blog.csdn.net/wangxing233/article/details/79452946HashMap与Hashtable的区别是面试中经常遇到的一个问题。这个问题看似简单,但如果深究进去,也能了解到不少知识。本文对两者从来源,特性,算法等多个方面进行对比总结。力争多角度,全方位的展示二者的不同,做到此问题的终结版。1 作者Hashtable的作者:HashMap的作者:Hash Map的作者比Hashtable的作者转载 2021-12-15 16:52:02 · 77 阅读 · 0 评论 -
05经典问题答案记录-红黑树
红黑树是每个节点都带有颜色属性的BST(Binary Search Tree)二叉查找树,颜色或红色或黑色【1】性质1. 节点是红色或黑色。【2】性质2. 根节点是黑色。【3】性质3 每个叶节点是黑色的。【4】性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)【5】性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。AVL树是Adelson-Velsky-Landis最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大原创 2021-12-15 14:56:06 · 506 阅读 · 0 评论 -
04经典问题答案记录-Hash碰撞
什么是Hash碰撞?提及Hash碰撞,就要提到HashMap的存储实现如下图即图中重复颜色的元素冲突了,就是Hash碰撞解决Hash碰撞(冲突)?在java中使用的链接法、拉链法jdk1.7中在调用HashMap的put方法或get方法时,都会首先调用hashcode方法,去查找相关的key,当有冲突时,再调用equals方法。hashMap基于hasing原理,我们通过put和get方法存取对象。当我们将键值对传递给put方法时,他调用键对象的hashCode()方法来计算hashCode原创 2021-12-15 14:31:09 · 1024 阅读 · 0 评论 -
3经典问题答案记录-HashMap的扩容机制
基本概念capacity 即容量,默认16。loadFactor 负载因子,默认是0.75threshold 阈值。阈值=容量*负载因子。默认12。当元素数量超过阈值时便会触发扩容。一般情况下,当元素数量超过阈值时便会触发扩容。每次扩容的容量都是之前容量的2倍。HashMap的容量是有上限的,必须小于1<<30,即1073741824。如果容量超出了这个数,则不再增长,且阈值会被设置为Integer.MAX_VALUE( 2^31-1,即永远不会超出阈值了)。为什么负载因子是0.7原创 2021-12-14 13:29:08 · 400 阅读 · 0 评论 -
2经典问题答案记录-ArrayList的扩容机制
每个ArrayList实例都有一个容量,该容量是指来存储列表元素的数组的大小,该容量至少等于列表数组的大小,随着ArrayList的不断添加元素,其容量也在自动增长,自动增长会将原来数组的元素向新的数组进行copy。如果提前预判数据量的大小,可在构造ArrayList时指定其容量。1.ArrayList每次扩容是原来得1.5倍。2.数组进行扩容时,会将老数据中得元素重新拷贝一份道新的数组中。4.创建方式不同,容量不同。为什么是1.5倍在grow()方法中调用了newCapacity(最小容量)方法原创 2021-12-13 17:11:59 · 372 阅读 · 0 评论 -
1经典问题答案记录-ArrayList和LinkedList的区别
经典问题答案记录-ArrayList和LinkedList的区别ArrayList的实现是基于数组来实现的,LinkedList的基于双向链表来实现。这两个数据结构的逻辑关系是不一样,当然物理存储的方式也会是不一样。LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。对于随机访问(获取某一某些元素),ArrayList要优于LinkedList。对于插入和删除操作,LinkedList原创 2021-12-13 15:08:07 · 518 阅读 · 0 评论