
面试专栏
分享一些有意思的面试题目
KingdomCoder
技术发烧友
展开
-
彻底掌握HashMap的源码实现
概述 HashMap是 Key-Value 对映射的抽象接口,该映射不包括重复的键,即一个键对应一个值。 在HashMap中,其会根据hash算法来计算key-value的存储位置并进行快速存取。 HashMap允许key和value为null原创 2020-06-08 20:16:20 · 294 阅读 · 0 评论 -
精读LinkedList源码
概述 LinkedList是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢,另外它还提供了List接口中没有定义的方法,专门用于操作表头和表尾元素,可当做堆栈,队列和双向队列使用。 链表的介绍 1.单向链表 单向链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点。链表是由结点构成,head指针指向第一个成为表头结点,而终止于最后一.原创 2020-05-13 10:09:19 · 256 阅读 · 0 评论 -
精读分析ArrayList源码
概述 ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要进行扩容(如果不指定容量初始容量为10 ,扩容后容量为原来的1.5倍),期间会涉及已经有的数据复制到新的存储空间。所以当从ArrayList的中间位置插入或者删除元素时,需要对数据进行复制、移动、代价比较高。因此,它适合随机查找和遍历,...原创 2020-05-06 18:05:45 · 311 阅读 · 0 评论 -
高效率的集合交集(差集)处理方式
我们在业务上难免会遇到集合交集的处理,这边总结了几种方式比较,然后寻求最优的方式。当然如果集合数据比较少的情况下,选取的方式基本都能满足需求,但是如果在数据量比较大的情况下呢?如果选取的方式不好,那么效率就会及其的低下。下面我们就集中方式展开分析。 ArrayList原生接口retainAll(c)方式 public static void main(String[] args) { ...原创 2020-05-06 18:04:13 · 1938 阅读 · 0 评论 -
经典面试题-线程间的通信问题(各种解法)
问题 两个线程,一个输出字母,一个输出数子,交替出现比如:1A2B3C4D5E6F… 代码实战 LockSupport方式 public class LockSupportMethod { static Thread t1 = null; static Thread t2 = null; public static void main(Str...原创 2020-04-29 18:13:16 · 575 阅读 · 0 评论