随笔分类 - JDK1.8源码阅读
摘要:一、前言 在之前的几篇中,我们回顾了锁框架中比较重要的几个类,他们为实现同步提供了基础支持,从现在开始到后面,就开始利用之前的几个类来进行各种锁的具体实现。今天来一起看下ReentrantLock,首先来看一下Java doc 上对ReentrantLock的解释: ReentrantLock,作为
阅读全文
摘要:一、前言 在 "上一篇" 中,我们对LockSupport进行了阅读,因为它是实现我们今天要分析的AbstractQueuedSynchronizer(简称AQS)的基础,重新用一下最开始的图: 可以看到,在ReentrantLock,Semaphore,CountDownLatch,Reentra
阅读全文
摘要:一、前言 Basic thread blocking primitives for creating locks and other synchronization classes. 用于创建锁定和其他同步类的基本线程阻塞原语(基础?)。 上面这段话是Java Doc对LockSupport的描述,
阅读全文
摘要:一、前言 前段时间结束了jdk1.8集合框架的源码阅读,在过年的这段时间里,一直在准备JUC(java.util.concurrent)的源码阅读。平时接触的并发场景开发并不很多,但是有网络的地方,就存在并发,所以想找几本书阅读深入一下,看到网上推荐较多的两本书《Java并发编程实战》和《Java多
阅读全文
摘要:一、前言 这一篇里,我将对HashSet、LinkedHashSet、TreeSet进行汇总分析,并不打算一一进行详细介绍,因为JDK对Set的实现进行了取巧。我们都知道Set不允许出现相同的对象,而Map也同样不允许有两个相同的Key(出现相同的时候,就执行更新操作)。所以Set里的实现实际上是调
阅读全文
摘要:一、前言 这次我们来看一下常见的List中的第二个——LinkedList,在前面分析ArrayList的时候,我们提到,LinkedList是链表的结构,其实它跟我们在分析map的时候讲到的LinkedHashMap的结构有一定的相似,但是相对简单很多,今天再详细的看一下它的具体结构,以及使用的场
阅读全文
摘要:一、前言 在前面几篇,我们已经学习了常见了Map,下面开始阅读实现Collection接口的常见的实现类。在有了之前源码的铺垫之后,我们后面的阅读之路将会变得简单很多,因为很多Collection的结构与Map的类似,甚至有不少是直接用了Map里的方法。接下来让我们一起来看一下 的源码。 二、Arr
阅读全文
摘要:一、前言 今天我们来看一下本次集合源码阅读里的最后一个Map——IdentityHashMap。这个Map之所以放在最后是因为它用到的情况最少,也相较于其他的map来说比较特殊。就笔者来说,到目前为止还没有用到过它 ┐(゚~゚)┌。它的罕见与它的用途有关,当时的Map设计者是这么说的: This c
阅读全文
摘要:一、前言 在 "前一篇博客中" ,我们对TreeMap的继承关系进行了分析,在这一篇里,我们将分析TreeMap的数据结构,深入理解它的排序能力是如何实现的。这一节要有一定的数据结构基础,在阅读下面的之前,推荐大家先看一下: "《算法4》深入理解红黑树" 。(个人比较喜欢 算法四 这里介绍的红黑树实
阅读全文
摘要:一、前言 在前面两篇随笔中,我们提到过,当HashMap的桶过大的时候,会自动将链表转化成红黑树结构,当时一笔带过,因为我们将留在本章中,针对TreeMap进行详细的了解。 二、TreeMap的继承关系 下面先让我们来看一下TreeMap的继承关系,对它有一个大致的了解: 可以看到,除了在之前Has
阅读全文
摘要:一、前言 在 "上一篇随笔" 中,我们分析了 HashMap 的源码,里面涉及到了3个钩子函数,用来预设给子类—— LinkedHashMap 的调用,所以趁热打铁,今天我们来一起看一下它的源码吧。 二、LinkedHashMap的结构与继承关系 2.1 LinkedHashMap的数据结构 可以从
阅读全文
摘要:一、前言 笔者之前看过一篇关于jdk1.8的 "HashMap源码分析" ,作者对里面的解读很到位,将代码里关键的地方都说了一遍,值得推荐。笔者也会顺着他的顺序来阅读一遍,除了基础的方法外,还添加了很多其他补充内容。 二、HashMap结构概览 以下是HashMap的数据结构: 不同于之前的jdk的
阅读全文
摘要:一、前言 今天开始阅读jdk1.8的集合部分,平时在写项目的时候,用到的最多的部分可能就是Java的集合框架,通过阅读集合框架源码,了解其内部的数据结构实现,能够深入理解各个集合的性能特性,并且能够帮助自己在今后的开发中避免犯一些使用错误。另外笔者自己也是摸着石头过河,如果有描述不当的地方,希望园友
阅读全文
摘要:一、前言 万丈高楼平地起,相信要想学好java,仅仅掌握基础的语法是远远不够的,从今天起,笔者将和园友们一起阅读jdk1.8的源码,并将阅读重点放在常见的诸如 collection集合 以及 concurrent并发 两块,另外笔者自己也是摸着石头过河,如果有描述不当的地方,希望园友们能够不吝指
阅读全文

浙公网安备 33010602011771号