Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合,代表一种队列集合实现. JDK1.5版本中,加入java.uill.concurrent包,其中包含集合的线程安全方式的实现.本文仅探讨concurrent包下面的Collection接口实现. 目录 1. concurrent包下面Collection子接口.类框架图2. CopyOnWriteA…
Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合,代表一种队列集合实现. JDK1.5版本中,加入java.uill.concurrent包,其中包含集合的线程安全方式的实现.本文仅探讨concurrent包下面的Map接口实现. 1. concurrent包下面Map子接口.类框架图 2. ConcurrentMap接口.ConcurrentHa…
List,Set,Map在java.util包下都是接口 List有两个实现类:ArrayList和LinkedListSet有两个实现类:HashSet和LinkedHashSetAbstractSet实现了Set A:LinkedList实现了List接口: B: AbstractSet实现了Set接口: C: HashSet继承自AbstractSet基类: D: WeakMap继承自 AbstractMap…
Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合,代表一种队列集合实现. Java集合框架主要由Collection和Map两个根接口及其子接口.实现类组成.本文仅探讨Collection接口及其子接口.实现类. 目录 1. Collection接口继承树2. Collection接口基本操作3. Collection的遍历4. Set子接口 4.…
Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合,代表一种队列集合实现. Java集合框架主要由Collection和Map两个根接口及其子接口.实现类组成.本文仅探讨Collection接口及其子接口.实现类. 1. Collection接口继承树 2. Collection接口是Set.List和Queue接口的父接口,基本操作包括: add(…
CountDownLatch 跟join的区别 CountDownLatch用处跟join很像,但是CountDownLatch更加灵活,如果子线程有多个阶段a.b.c; 那么我们可以实现在a阶段完成后(在a阶段后 ,b.c阶段之前, latch.countDown();),就可以往下运行,主线程并不用等子线程把b.c阶段都跑完. latch.countDown() 其实是state -1 操作,latch.await() 其实一直在判断state == 0 如果为0就不再等待向下执行,基于AQ…
Java并发编程:concurrent包下辅助类的使用 整理自:博客园-海子-http://www.cnblogs.com/dolphin0520/p/3920397.html 1.CountDownLatch用法: count到达0之前,调用await()的线程会一直等待,count不能重用. 1.1.构造与方法: CountDownLatch(int count) 构造一个用给定计数初始化的 CountDownLatch await() 使当前线程在锁存器倒计数至零之前一直等待,除非线程被中…
Collection集合框架 在实际开发中,需要将使用的对象存储于特定数据结构的容器中.而 JDK 提供了这样的容器——集合框架,集合框架中包含了一系列不同数据结构(线性表.查找表)的实现类.集合的引入:数组的优势:是一种简单的线性序列,可以快速地访问数组元素,效率高.如果从效率和类型检查的角度讲,数组是最好的.数组的劣势:不灵活.容量需要事先定义好,不能随着需求的变化而扩容.1)Collection 常用方法:①int size():返回包含对象个数. ②boolean isEmpty():返…
java concurrent包的学习(转) http://my.oschina.net/adwangxiao/blog/110188 我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完 成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便.而当针对高质量Java多线程并发程序设计时,为防 止死蹦等现象的出现,比如使用java之前的wait().notify()和synchronized等,每每需要考虑性能.死锁.公平性.…
java.io 包下的类有哪些 + 面试题 IO 介绍 IO 是 Input/Output 的缩写,它是基于流模型实现的,比如操作文件时使用输入流和输出流来写入和读取文件等. IO 分类 传统的 IO,按照流类型我们可以分为: 字符流 字节流 其中,字符流包括 Reader.Writer:字节流包括 InputStream.OutputStream. 传统 IO 的类关系图,如下图所示: IO 使用 了解了 IO 之间的关系,下面我们正式进入实战环节,分别来看字符流(Reader.Writer)…