随笔分类 -  java src

摘要:在并发编程时总会遇到一种这样的场景:等待一系列任务做完后,才能开始做某个任务。当遇到这种场景时,两个类cross our mind:CountDownLatch和CyclicBarrier。下面从使用方法和内部实现原理分别对这两个类做出介绍。 使用方法 CountDownLatch 任务 在完成每一 阅读全文
posted @ 2018-11-27 22:35 arax 阅读(789) 评论(1) 推荐(0)
摘要:ps:在下文中分别以Array代表ArrayBlockingQueue,Link代表LinkedBlockingQueue,下文中不再说明。 Array和Link在并发场景中经常使用,他们的共同作用就是实现线程安全队列。下面对这两种队列的实现进行对比分析。 底层实现 ArrayBlockingQue 阅读全文
posted @ 2018-11-08 11:30 arax 阅读(2653) 评论(0) 推荐(0)
摘要:根据自己对hashMap的理解,基于数组加链表实现了一个HashMap。 下面给出源码:https://github.com/XiaoheXu/hotchpotch/blob/master/src/main/java/com/chris/java/collections/HashMap.java 单 阅读全文
posted @ 2018-08-08 13:38 arax 阅读(205) 评论(0) 推荐(0)
摘要:简介 Vector 看上去想一个可增长的数组,可以使用索引访问。他的size随着添加或删除item可大可小。Vector为了优化存储,保存着capacity和capacityIncrement两个变量。capacity最小为vector当前的大小。一般比vector的size要大,当有有数据添加到v 阅读全文
posted @ 2018-06-10 12:55 arax 阅读(213) 评论(0) 推荐(0)
摘要:最近在看java的反射,看着看着就看到了jdk中动态代理的实现,于是将代理的知识点在这里介绍一下。在设计模式中有一种模式就是代理模式,它的主要作用是创建一个对象的代理,来控制对该对象的访问。本章节不深入讨论代理设计模式,而是介绍其两种实现方式:静态代理、动态代理。 简介 对于代理模式,我们首先要明白 阅读全文
posted @ 2018-04-13 18:13 arax 阅读(230) 评论(0) 推荐(0)
摘要:简介 LinkedList 是一个双向链表,他实现了List和Deque(双向队列,既有队列的性质,又有栈的性质)。LinkedList的实现也是非线程安全的,如果有多个线程访问队列,只是读取链表的内容没有关系,当有其中的一个线程修改了list的结构时,在代码中必须保证同步。在链表中添加和删除元素都 阅读全文
posted @ 2018-02-04 10:15 arax 阅读(173) 评论(0) 推荐(0)
摘要:TreeMap 下文中提到的比较大小, 0, getEntry(Object key) { // Offload comparator based version for sake of performance if (comparator != null) return getEntryUsing 阅读全文
posted @ 2018-01-30 19:52 arax 阅读(171) 评论(0) 推荐(0)
摘要:1 结构简介 他继承自hashMap,在hashMap的基础上添加了一个双向链表的结构。双向链表决定迭代顺序 (迭代顺序在下文中具体介绍)。LinkedHashMap 的add,contains,remove的时间复杂度为O(1),但是性能比HashMap稍差,因为在其内部需要维护链表。 迭代器迭代 阅读全文
posted @ 2018-01-13 16:43 arax 阅读(247) 评论(0) 推荐(0)
摘要:很多人都知道HashTable与HashMap的关系,HashTable是线程安全的,HashMap是非线程安全的。在介绍完 "HashMap" 之后,趁热介绍一下HashTable。在HashTable中没有像HashMap中那么多关于数据结构的内容。HashTable是线程安全的,因为其源码的方 阅读全文
posted @ 2018-01-05 20:46 arax 阅读(269) 评论(0) 推荐(0)
摘要:HashMap通常使用链地址方法存储,但是当链的长度太大(大于8)时,这个链就会转换为红黑树,类似java.util.TeeMap。大部分情况下使用链表,但检查到节点为树节点时,也会使用树。树状的链表可以像其他链表一样使用和遍历,但是如果HashMap中冲突严重的情况下,树状的链表查找更快。Hash 阅读全文
posted @ 2017-12-02 09:35 arax 阅读(303) 评论(0) 推荐(0)