Java面试题

题目

Java 容器有哪些?哪些是同步容器,哪些是并发容器?

答案

概述

Java 容器包含 Set、List、Map。其中,Set 包含:HashSet、TreeSet。List 包含 ArrayList、LinkedList、Vertor。Map 包含 HashMap、HashTable、TreeMap。

同步容器

同步容器通过 synchronized 关键字对线程不安全的操作进行加锁来保证线程安全的,其原理是使得多线程轮流获取同步锁进行对集合的操作。

  1. Vector、Stack、HashTable 是同步容器。
  2. Collections 工具类里面提供的同步集合类。比如:Collection.synchronizedCollection。List.synchronizedList。Map.synchronizedSet。

并发容器

在原有集合的拷贝上进行操作,用修改后的集合替换原集合的方式来达到并发企且安全的使用集合类的目的。

  1. Queue 类型:阻塞队列 BlockingQueue、非阻塞队列 ConcurrentLinkedQueue
  2. Map 类型:ConcurrentMap
  3. Set 类型:ConcurrentSkipListSet、CopyOnWriteArraySet
  4. List 类型:CopyOnWriteArrayList