064_不可变集合与同步集合
一、集合安全性概述
在Java开发中,集合的安全性主要涉及数据不可变性和线程安全性两大场景。不可变集合通过禁止修改操作保障数据一致性,同步集合通过线程同步机制保障多线程环境下的操作安全。两者针对不同的安全需求提供解决方案,是Java集合框架中保障数据安全的重要手段。
二、不可变集合
2.1 定义与核心特性
不可变集合(Immutable Collection)是指创建后无法修改其内容的集合,包括添加、删除元素或修改元素值等操作均不被允许。其核心特性包括:
- 不可修改性:集合创建后元素数量和值无法变更。
- 线程安全:因无修改操作,天然支持多线程并发访问,无需额外同步。
- 数据一致性:确保集合内容在生命周期内始终保持创建时的状态。
2.2 常见创建方式
2.2.1 Collections工具类的unmodifiable系列方法
通过包装现有集合生成不可变视图,底层依赖原始集合,若原始集合被修改,不可变视图会同步变化(存在一定局限性)。
// 创建不可变List
List<String> originalList = new ArrayList<>();
originalList.add("A");
List<String> unmodifiableList = Collections.unmodifiableList(originalList);// 创建不可变Set
Set<Integer> originalSet = new HashSet<>();
originalSet.add(1);
Set<Integer> unmodifiableSet = Collections.unmodifiableSet(originalSet);// 创建不可变Map
Map