摘要: 一、前言 ​ 万丈高楼平地起,相信要想学好java,仅仅掌握基础的语法是远远不够的,从今天起,笔者将和园友们一起阅读jdk1.8的源码,并将阅读重点放在常见的诸如 collection集合 以及 concurrent并发 两块,另外笔者自己也是摸着石头过河,如果有描述不当的地方,希望园友们能够不吝指阅读全文
posted @ 2017-10-14 15:26 joemsu 阅读(7174) 评论(1) 编辑
摘要: 一、前言 在之前的几篇中,我们回顾了锁框架中比较重要的几个类,他们为实现同步提供了基础支持,从现在开始到后面,就开始利用之前的几个类来进行各种锁的具体实现。今天来一起看下ReentrantLock,首先来看一下Java doc 上对ReentrantLock的解释: ReentrantLock,作为阅读全文
posted @ 2018-08-11 16:31 joemsu 阅读(271) 评论(0) 编辑
摘要: 一、前言 笔者曾经阅读过周志明的《深入理解Java虚拟机》这本书,阅读完后自以为对jvm有了一定的了解,然而当真正碰到问题的时候,才发现自己读的有多粗糙,也体会到只有实践才能加深理解,正应对了那句话——“Talk is cheap, show me the code”。前段时间,笔者同事提出了一个关阅读全文
posted @ 2018-07-14 17:19 joemsu 阅读(6058) 评论(0) 编辑
摘要: 一、前言 在 "上一篇" 中,我们对LockSupport进行了阅读,因为它是实现我们今天要分析的AbstractQueuedSynchronizer(简称AQS)的基础,重新用一下最开始的图: 可以看到,在ReentrantLock,Semaphore,CountDownLatch,Reentra阅读全文
posted @ 2018-05-07 09:57 joemsu 阅读(420) 评论(0) 编辑
摘要: 一、前言 对,没错,我又水了好一阵子,深刻反思寄几。前段时间,工作项目上出于对excel等批量操作可能出现误操作的问题,要求提供一个能够根据操作批次进行数据回滚的能力。在开发的过程中接触到了MySQL的Binary Log,感觉有些收获,记录一下。 二、Binary Log的概念 首先我们要了解一下阅读全文
posted @ 2018-04-24 09:41 joemsu 阅读(940) 评论(1) 编辑
摘要: 一、前言 Basic thread blocking primitives for creating locks and other synchronization classes. 用于创建锁定和其他同步类的基本线程阻塞原语(基础?)。 上面这段话是Java Doc对LockSupport的描述,阅读全文
posted @ 2018-04-21 18:34 joemsu 阅读(427) 评论(0) 编辑
摘要: 一、前言 前段时间结束了jdk1.8集合框架的源码阅读,在过年的这段时间里,一直在准备JUC(java.util.concurrent)的源码阅读。平时接触的并发场景开发并不很多,但是有网络的地方,就存在并发,所以想找几本书阅读深入一下,看到网上推荐较多的两本书《Java并发编程实战》和《Java多阅读全文
posted @ 2018-03-12 10:50 joemsu 阅读(679) 评论(0) 编辑
摘要: 元旦至今春节期间一直想写这篇总结,然鹅苦于心里有个吃鸡梦,没能静下心来好好回顾去年。最近看过一本书,里面有句话说的很对:每个人获得的东西都恰好是他值得获得的东西。换句话说,出来混都是要还的,虽然我不信道家,但是对于里面的因果,现世报还是很认可的,每个人在过去种下了因,在将来就会得到对应的果。比如,我阅读全文
posted @ 2018-02-25 11:23 joemsu 阅读(178) 评论(0) 编辑
摘要: 一、前言 这一篇里,我将对HashSet、LinkedHashSet、TreeSet进行汇总分析,并不打算一一进行详细介绍,因为JDK对Set的实现进行了取巧。我们都知道Set不允许出现相同的对象,而Map也同样不允许有两个相同的Key(出现相同的时候,就执行更新操作)。所以Set里的实现实际上是调阅读全文
posted @ 2018-02-04 11:19 joemsu 阅读(1224) 评论(0) 编辑
摘要: 一、前言 这次我们来看一下常见的List中的第二个——LinkedList,在前面分析ArrayList的时候,我们提到,LinkedList是链表的结构,其实它跟我们在分析map的时候讲到的LinkedHashMap的结构有一定的相似,但是相对简单很多,今天再详细的看一下它的具体结构,以及使用的场阅读全文
posted @ 2018-01-07 14:40 joemsu 阅读(494) 评论(2) 编辑
摘要: 一、前言 在前面几篇,我们已经学习了常见了Map,下面开始阅读实现Collection接口的常见的实现类。在有了之前源码的铺垫之后,我们后面的阅读之路将会变得简单很多,因为很多Collection的结构与Map的类似,甚至有不少是直接用了Map里的方法。接下来让我们一起来看一下 的源码。 二、Arr阅读全文
posted @ 2017-12-22 09:54 joemsu 阅读(853) 评论(0) 编辑
摘要: 一、前言 今天我们来看一下本次集合源码阅读里的最后一个Map——IdentityHashMap。这个Map之所以放在最后是因为它用到的情况最少,也相较于其他的map来说比较特殊。就笔者来说,到目前为止还没有用到过它 ┐(゚~゚)┌。它的罕见与它的用途有关,当时的Map设计者是这么说的: This c阅读全文
posted @ 2017-12-15 10:42 joemsu 阅读(555) 评论(0) 编辑
摘要: 一、问题描述 笔者根据需求在开发过程中,需要在原项目的基础上(单数据源),新增一个数据源C,根据C数据源来实现业务。至于为什么不新建一个项目,大概是因为这只是个小功能,访问量不大,不需要单独申请个服务器。T^T 当笔者添加完数据源,写完业务逻辑之后,跑起来却发现报了个错。 描述的很清晰:就是 初始化阅读全文
posted @ 2017-12-12 16:12 joemsu 阅读(661) 评论(0) 编辑
摘要: 一、前言 在 "前一篇博客中" ,我们对TreeMap的继承关系进行了分析,在这一篇里,我们将分析TreeMap的数据结构,深入理解它的排序能力是如何实现的。这一节要有一定的数据结构基础,在阅读下面的之前,推荐大家先看一下: "《算法4》深入理解红黑树" 。(个人比较喜欢 算法四 这里介绍的红黑树实阅读全文
posted @ 2017-12-01 11:01 joemsu 阅读(590) 评论(2) 编辑
摘要: 一、前言 在前面两篇随笔中,我们提到过,当HashMap的桶过大的时候,会自动将链表转化成红黑树结构,当时一笔带过,因为我们将留在本章中,针对TreeMap进行详细的了解。 二、TreeMap的继承关系 下面先让我们来看一下TreeMap的继承关系,对它有一个大致的了解: 可以看到,除了在之前Has阅读全文
posted @ 2017-11-22 16:15 joemsu 阅读(874) 评论(0) 编辑
摘要: 一、前言 在 "上一篇随笔" 中,我们分析了 HashMap 的源码,里面涉及到了3个钩子函数,用来预设给子类—— LinkedHashMap 的调用,所以趁热打铁,今天我们来一起看一下它的源码吧。 二、LinkedHashMap的结构与继承关系 2.1 LinkedHashMap的数据结构 可以从阅读全文
posted @ 2017-11-05 12:10 joemsu 阅读(2302) 评论(0) 编辑