随笔分类 -  源码分析

摘要:在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提 阅读全文
posted @ 2020-02-14 13:37 未月廿三 阅读(368) 评论(0) 推荐(0) 编辑
摘要:大纲 一.什么是Hash?什么是HashMap? 二.HashMap的内部实现机制 1.HashMap基本元素 ①DEFAULT_INITIAL_CAPACITY&MAXIMUM_CAPACITY ②DEFAULT_LOAD_FACTOR&loadFactor ③size&threshold 2.H 阅读全文
posted @ 2020-02-03 15:41 未月廿三 阅读(647) 评论(0) 推荐(0) 编辑
摘要:上篇我们分析了ArrayList的底层实现,知道了ArrayList底层是基于数组实现的,因此具有查找修改快而插入删除慢的特点。本篇介绍的LinkedList是List接口的另一种实现,它的底层是基于双向链表实现的,因此它具有插入删除快而查找修改慢的特点,此外,通过对双向链表的操作还可以实现队列和栈 阅读全文
posted @ 2020-02-02 19:14 未月廿三 阅读(357) 评论(0) 推荐(0) 编辑
摘要:本篇分析ArrayList的源码,在分析之前先跟大家谈一谈数组。数组可能是我们最早接触到的数据结构之一,它是在内存中划分出一块连续的地址空间用来进行元素的存储,由于它直接操作内存,所以数组的性能要比集合类更好一些,这是使用数组的一大优势。但是我们知道数组存在致命的缺陷,就是在初始化时必须指定数组大小 阅读全文
posted @ 2020-02-02 11:09 未月廿三 阅读(253) 评论(0) 推荐(0) 编辑
摘要:问题:在多线程环境下,如何防止自己的变量被其它线程篡改 答案:ThreadLocal. ThreadLocal 不是用来解决共享对象的多线程访问的竞争问题的,因为ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。当线程终止后,这些值会作为 阅读全文
posted @ 2020-01-28 20:24 未月廿三 阅读(690) 评论(2) 推荐(1) 编辑

点击右上角即可分享
微信分享提示