1 Star 2 Fork 0

yanyingbai / SourceCode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
集合.md 1.59 KB
一键复制 编辑 原始数据 按行查看 历史
yanyingbai 提交于 2023-02-08 11:32 . Java源生容器

集合

  • 集合关系图(展示基本情况)

  • List

    • ArrayList如何保证线程安全?

      • 修改为使用Vector, 性能会下降
      • 使用Collections.synchronizedCollection()
      • 直接加锁
    • ArrayList与Vector的区别;前者线程不安全,扩容为1.5倍;后者线程安全,扩容为2倍

    • Vector是方法级别的锁,而synchronizedCollection是变量级别的锁,一般使用后者,性能会强于Vector

    • LinkedList如何保证线程安全?

      • 使用Collections.synchronizedList();
    • Collections方法本质上是对基础对象的增强,属于设计模式中装饰者模式的使用

      对象名称 具体实现 线程是否安全
      ArrayList 动态数组,随机访问 不安全
      LinkedList 双向链表 不安全
      Vector 动态数组 安全
  • Set

    • 如何保证线程安全:

      • Collections.synchronizedSet()
    • 对象名称 具体实现 线程是否安全 是否有序
      TreeSet 基于Map 不安全
      HashSet 基于HashMap 不安全
      LinkedHashSet 双向链表 不安全
  • Queue

    • 对象名称 具体实现 线程是否安全
      LinkedList 基于链表 不安全
      PriorityQueue 基于堆 不安全
1
https://gitee.com/BeliveLove/source-code.git
git@gitee.com:BeliveLove/source-code.git
BeliveLove
source-code
SourceCode
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891