
java基础,容器
强迫症Kobe
与其焦虑成疾,不如静心学习。
展开
-
JDK7与JDK8中HashMap的实现
DK7中的HashMap原帖地址:https://my.oschina.net/hosee/blog/618953HashMap底层维护一个数组,数组中的每一项都是一个Entrytransient Entry[] table;我们向 HashMap 中所放置的对象实际上是存储在该数组当中; 而Map中的key,value则以Entry的形式存放在数组中static clas转载 2017-11-27 15:06:51 · 165 阅读 · 0 评论 -
《Java源码分析》:CopyOnWriteArrayList/ CopyOnWriteArraySet
《Java源码分析》:CopyOnWriteArrayList/CopyOnWriteArraySetCopyOnWriteArrayList/CopyOnWriteArraySet的基本思想是一旦对容器有修改,那么就“复制”一份新的集合,在新的集合上修改,然后将新集合复制给旧的引用。当然了这部分少不了要加锁。显然对于CopyOnWriteArrayList/CopyOnWriteArraySet...转载 2018-05-07 19:51:08 · 173 阅读 · 0 评论 -
ArrayList源码剖析
注:本文转自:http://blog.youkuaiyun.com/ns_code/article/details/35568011ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(Lis...转载 2018-05-01 13:23:59 · 127 阅读 · 0 评论 -
JDK1.8源码逐字逐句带你理解LinkedHashMap底层
引言关于java中的不常见模块,让我一下子想我也想不出来,所以我希望以后每次遇到的时候我就加一篇。上次有人建议我写全所有常用的Map,所以我研究了一晚上LinkedHashMap,把自己感悟到的解释给大家。在本篇博文中,我会用一个例子展现LinkedHashMap的运行和初始化情况,展示LinkedHashMap的数据存储情况,同时用JDK1.8中它的源代码解释给大家。其实,在以前的博文中我就已经...转载 2018-03-10 09:45:58 · 258 阅读 · 0 评论 -
深入理解ConcurrentHashMap之源码分析(JDK8版本)
注:本文源码是JDK8的版本,与之前的版本有较大差异ConcurrentHashMap是conccurrent家族中的一个类,由于它可以高效地支持并发操作,以及被广泛使用,经典的开源框架spring的底层数据结构就是使用ConcurrentHashMap实现的。与同是线程安全的老大哥HashTable相比,它已经更胜一筹,因此它的锁更加细化,而不是像HashTable一样为几乎每个方法都添转载 2017-12-30 13:50:23 · 466 阅读 · 0 评论 -
JDK 1.8 ConcurrentHashMap 源码剖析
转载两篇不错的文章:第一篇:前言HashMap是我们平时开发过程中用的比较多的集合,但它是非线程安全的,在涉及到多线程并发的情况,进行put操作有可能会引起死循环,导致CPU利用率接近100%。[java] view plain copy final HashMap map = new HashMap(2); for (int i = 0; i 1转载 2017-12-30 13:44:58 · 537 阅读 · 0 评论 -
深入学习WeakHashMap
这一章,我们对WeakHashMap进行学习。我们先对WeakHashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用WeakHashMap。第1部分 WeakHashMap介绍第2部分 WeakHashMap数据结构第3部分 WeakHashMap源码解析(基于JDK1.6.0_45)第4部分 WeakHashMap遍历方式第5部分 WeakHashMap转载 2017-12-28 17:29:30 · 191 阅读 · 0 评论 -
【转载】 深入理解WeakHashmap
WeakHashmap(一) 查看API文档,WeakHashmap要点如下:以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除WeakHashMa转载 2017-12-28 17:27:17 · 141 阅读 · 0 评论 -
深入理解HashMap
摘要: HashMap是Map族中最为常用的一种,也是 Java Collection Framework 的重要成员。本文首先给出了 HashMap 的实质并概述了其与 Map、HashSet 的关系,紧接着给出了 HashMap 在 JDK 中的定义,并结合源码分析了其四种构造方式。最后,通过对 HashMap 的数据结构、实现原理、源码实现三个方面的剖析,深入到它底层 Hash 存储机制,...转载 2018-01-03 09:54:58 · 221 阅读 · 0 评论 -
计算hashCode的常见方法
1. 把某个非零常数值,比如说17,保存在一个叫result的int类型的变量中。2.对于对象中每一个关键域f(值equals方法中考虑的每一个域),完成以下步骤:a.为该域计算int类型的散列吗c: i. 如果该域是boolean类型,则计算[java] view plain copyf?0:1 ii. 如果该域是转载 2017-12-27 18:16:32 · 2055 阅读 · 0 评论 -
JDK7与JDK8中HashMap的实现
这几天学习了HashMap的底层实现,但是发现好几个版本的,代码不一,而且看了Android包的HashMap和JDK中的HashMap的也不是一样,原来他们没有指定JDK版本,很多文章都是旧版本JDK1.6.JDK1.7的。现在我来分析一哈最新的JDK1.8的HashMap及性能优化。在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一h转载 2018-01-01 23:30:59 · 1509 阅读 · 0 评论 -
HashMap源码分析
1.HashMap简介 首先看一下HashMap的继承关系[java] view plain copyjava.lang.Object ↳ java.util.AbstractMap ↳ java.util.HashMap public class Has转载 2018-01-01 21:37:38 · 189 阅读 · 0 评论 -
JAVA HASHMAP的死循环
原文链接:https://coolshell.cn/articles/9606.html在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出转载 2017-12-15 23:36:45 · 167 阅读 · 0 评论 -
HashMap循环遍历方式及其性能对比
主要介绍HashMap的四种循环遍历方式,各种方式的性能测试对比,根据HashMap的源码实现分析性能结果,总结结论。 1. Map的四种遍历方式下面只是简单介绍各种遍历示例(以HashMap为例),各自优劣会在本文后面进行分析给出结论。(1) for each map.entrySet()Java12345MapString, Stri转载 2017-12-15 23:29:24 · 186 阅读 · 0 评论 -
平衡二叉树(AVL树)深入解读
https://blog.youkuaiyun.com/zxnsirius/article/details/52137704转载 2018-08-12 13:11:57 · 283 阅读 · 0 评论