接着上篇文章给出的Java在JDK1.2之后在java.util包中给出的集合类/容器类以及数组的应用整理。也考虑和讨论了并发一致性的问题。
其实在高并发的情况下,仅仅靠java.util包中提供的最基本的容器往往不能满足具体应用场景的需求。
在JavaSE5之后,也就是JDK1.5出来之后,在java.util.concurrent包中又提供了很多并发场景下方便使用的容器/集合工具类。这其中包括CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentHashMap、ConcurrentLinkedQueue、BlockingQueue等。
在CopyOnWriteArrayList中为了保证数据一致性,每当有新的改变的时候,会利用写时拷贝(Copy On Write),复制出一份新的List出来。而已经使用旧的拷贝的引用的,还会继续使用旧的。
同时为了保证并发情况下的执行效率,像ConcurrentHashMap中还用到了Segment进行分段,减小了锁粒度,提高了并发性。
BlockingQueue及其具体的各种实现类,则保证了队列为空时消费者的阻塞和队列为满时生产者的阻塞,在“生产者-消费者”模式下得到了广泛的应用。
ConcurrentLinkedQueue是旨在大并发量情况下,维持队列的基本功能,保持性能的工具类。
接着上篇,在本人的小站上,对Java的并发容器类/集合类进行了一些分析和整理,包括用法要点和源码分析。下面列表中的文章主要是考虑并发的情况下,对java.util.concurrent包中的容器类/集合类工具的分析整理:
- CopyOnWriteArrayList源码分析整理
- ConcurrentHashMap源码分析整理
- ConcurrentLinkedQueue源码分析整理
- BlockingQueue及其各个实现的分析整理
欢迎大家阅读并拍砖,谢谢!
相关推荐
### Java集合类与容器类详解 #### 一、引言 在Java编程中,集合类是一种非常重要的数据结构,用于存储一系列对象。相比于数组,集合类提供了更多的灵活性和功能,尤其是在处理未知数量的对象时更为方便。Java标准...
在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍一些重要的Java工具类及其功能。 1. `java.util.ArrayList` 和 `java.util.LinkedList`: - `ArrayList` 是基于...
### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...
java 容器类 集合类 Collection 你懂了吗
Java容器类是Java编程语言中不可或缺的一部分,它们主要用于存储和管理对象。这些类和接口位于`java.util`包中,为开发者提供了灵活的数据结构和数据操作方式。在Java中,容器类主要分为两大类:Collection和Map。 ...
在IT领域,Java容器是一个非常重要的概念,尤其对于软件开发者来说,它们是理解和构建高效、可扩展的应用程序的关键。本文将深入探讨Java容器,并结合标签“源码”和“工具”,从源码层面和实用工具角度来分析这些...
Java容器类库主要分为两大类: - **Collection**:代表一组不重复的对象,支持添加、删除和查找等操作。 - **Map**:是一种键值对的集合,用于存储关联数据,如身份证号与员工信息之间的映射。 这两种容器在Java...
Java容器集合(equals和hashCode+基础数据结构+ArrayList+Vector和LinkedList) Java容器集合是Java中的一种基础数据结构,用于存储和管理数据。其中,equals和hashCode方法是Java容器集合中两个非常重要的方法,...
Set接口下有许多具体的实现类,如HashSet、TreeSet等,它们各有不同的特性。HashSet提供快速的插入和删除操作,但不保证元素的排序;而TreeSet则按照元素的自然排序或自定义比较器进行排序,插入和查询效率相对较低...
Java集合容器是Java编程语言中用于存储和管理对象的核心组件。在Java中,集合框架提供了多种数据结构,如列表(List)、集(Set)和映射(Map),以适应不同的数据处理需求。以下是对这些主要知识点的详细说明: 1....
Java容器类能够根据存储的数据动态调整其大小,以适应不同的需求。 - **Collection**:集合接口,可以包含重复的元素,是`List`和`Set`的共同父接口。 - **Set**:不允许重复元素,内部会根据一定的排序规则进行...
在Java中,集合主要分为两大类:Collection和Map。本文将对Java集合框架中的Collection接口及其相关接口、类进行深入的探讨。 首先,Collection接口是所有单值容器的基础,它是Set、List和Queue接口的父接口。...
Java容器类是Java集合框架的重要组成部分,它们提供了一种存储、管理和操作对象的方式。在Java中,容器类包括数组、列表、队列、集、映射等数据结构,它们为开发者提供了灵活的数据处理能力。本篇文章将深入探讨Java...
### Java容器框架 Collection集合 #### 一、基本概念 Java容器类库主要目的是为了存储对象,根据不同的数据结构,可以将其划分为两个主要的概念:**Collection** 和 **Map**。 - **Collection**:这是一个单一...
Java 类容器是 Java 编程中非常重要的一个概念,它主要指的是 Java 集合框架中的各种类,如 ArrayList、LinkedList、HashSet、HashMap 等,这些类用于存储和管理对象。本文将深入探讨这些常用的Java类容器,帮助...
Java中的容器大致可以分为两大类:**集合**(Collection)和**映射**(Map)。集合进一步分为List、Set等子类型,而映射则具有键值对的形式。 - **集合**:包括List、Set等,其中List保持插入顺序,而Set不允许重复...
### Java容器学习心得详解 在Java编程中,容器(Containers)是存储和操作对象集合的重要工具,主要包括集合(Collections)和映射(Maps)。本文将深入解析Java容器的关键概念、特性以及不同容器类型的应用场景。 ...
这篇博客"JAVA容器对象整理"可能涵盖了关于Java中的不同容器类、接口以及它们的使用方式。在这里,我们将深入探讨一些核心的Java容器知识点。 1. **ArrayList与LinkedList** - `ArrayList`是一个基于数组实现的...
Java集合容器是Java编程中非常重要的组成部分,掌握其概念、原理以及各种集合类的特点和使用场景对于开发高质量的应用程序至关重要。通过本篇文章的学习,希望读者能够更好地理解和应用Java集合容器,提升编程技能。
集合(或容器)表示保存一个对象组的单个对象,其它对象被认为是它的元素。 集合与数组的不同在于,它是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。对象数组中包含一组对象,但是对象数组使用的...