`
lin_yp
  • 浏览: 26695 次
社区版块
存档分类
最新评论

一些Java容器的性能比较

    博客分类:
  • Java
阅读更多

单线程和多线程场景下,增加元素/删除元素/查找元素,HashSet/HashMap的性能均比ArrayList/LinkedList高,

ArrayList的查找元素比LinkedList性能高

多线程场景下,ConcurrentHashMap性能比HashMap高

多线程场景下,CopyOnWriteArrayList的增加元素/删除元素性能比ArrayList低,查找元素性能比ArrayList高,

原因:查找时没有任何锁操作, 而增加删除时每次都会创建一个新数组,且复制数据时没有用System.arrayCopy,性能比ArrayList低

CopyOnWriteArraySet性能比CopyOnWriteArrayList低,因为每次add都要进行数组的遍历,判断是否有重复元素。

多线程高并发读写场景下,LinkedBlockingQueue性能比ArrayBlockingQueue高,因为LinkedBlockingQueue使用了2把锁,由于 读只操作队列头,写只操作队列尾,对于put和offer采用一把锁,对于take和pull采用另外一把锁,避免了读写时互相竞争锁的现象。

AtomicInteger性能比同步块++操作性能高,原因:CAS(CompareAndSet)是CPU原语,可认为是无阻塞的

减少高并发下的锁竞争:读写锁、CAS、拆分锁。

分享到:
评论

相关推荐

    JAVA容器对象整理

    在这里,我们将深入探讨一些核心的Java容器知识点。 1. **ArrayList与LinkedList** - `ArrayList`是一个基于数组实现的列表,它提供了随机访问的能力,但在插入和删除元素时效率较低,因为需要移动元素。 - `...

    JAVA容器知识积累

    Java容器是Java编程中至关重要的一个部分,它们用于存储、管理和操作对象集合。在这个主题下,我们将深入探讨Java中的核心容器类,包括数组、List、Set和Map,以及它们各自的特点和使用场景。 1. **数组**:数组是...

    JAVA容器效率深度分析List

    在Java编程中,容器是用于...总之,理解并掌握这些Java容器的特性和效率差异,能够帮助我们在实际开发中做出更合适的选择,提高程序的性能和可维护性。在具体应用时,还需要结合业务需求和性能测试,才能做出最佳决策。

    java练习题--容器使用练习

    5. 容器操作比较:对比ArrayList和LinkedList的性能差异,理解何时应该使用HashSet而不是List,何时应选择HashMap而不是其他类型的集合。 6. 遍历机制:熟悉foreach循环(增强for循环)和迭代器两种遍历容器的方法...

    java类容器总结文档

    Java 类容器是 Java 编程中非常重要的一个概念,它主要指的是 Java 集合框架中的各种类,如 ArrayList、LinkedList、HashSet、HashMap 等,这些类用于存储和管理对象。本文将深入探讨这些常用的Java类容器,帮助...

    JAVA容器的作用和概览

    Java容器(集合框架)是Java编程中极其重要的部分,它提供了多种数据结构,如列表、集合和映射,以适应不同场景下的数据存储和处理需求。通过合理选择和使用不同的容器,可以优化代码的性能和可维护性。同时,了解和...

    JAVA容器试题.docx

    【JAVA容器试题解析】 一、不定选择题 1. Java 容器框架主要分为 Collection 和 Map 两种。其中,Collection 又分为A、List,B、Set,C、Queue,D、以上都是。答案:D。 2. 以下哪一个是线程安全的:A、Vector,B...

    java中容器是什么意思?

    - **并发处理**:某些容器(如Vector和Hashtable)提供了内置的线程安全性,但在高性能、高并发的环境下,推荐使用Java并发包中的`ConcurrentHashMap`等并发容器。 - **工厂方法**:Java SDK提供了`Collections`工具...

    阿里巴巴Java性能调优实战(2021华山版)

    模块二主要讲解 Java 编程性能调优,包括基础的数据类型、容器在实际应用场景中的调优,以及现在互联网系统架构中比较重要的网络通信调优。 模块三:多线程性能调优 模块三主要讲解多线程性能调优,包括多线程编程...

    Java容器起源

    ### Java容器起源与JSP容器背景解析 #### 容器技术概述 容器技术在现代IT领域扮演着极其重要的角色,特别是在云计算和微服务架构中。本文将深入探讨容器技术的起源,尤其是针对Java环境中JSP容器的发展历程及其...

    JAVA 容器类应用

    Java容器类的应用不仅限于这些基本类型,还有`Collections.synchronizedXXX`方法创建的同步容器,以及`ConcurrentHashMap`这样的高级并发容器,它们在多线程环境下提供了更好的性能。 总的来说,理解和熟练使用Java...

    JAVA容器总结

    Java容器,主要包括集合框架中的Set、...总的来说,Java容器的选择和使用应根据具体需求来确定,例如数据的唯一性、顺序性、线程安全性和性能要求。理解这些接口和实现类的特点,可以帮助我们更好地设计和优化程序。

    Java从同步容器到并发容器的操作过程

    除了`CopyOnWrite`系列容器,`java.util.concurrent`包还包含其他并发容器,如`ConcurrentHashMap`,它使用分段锁技术,允许并发读写,相比于`HashTable`有更高的并发性能。`ConcurrentLinkedQueue`是一个无界的线程...

    Java容器简要介绍

    Java容器是Java编程中不可或缺的一部分,它们主要用于存储和管理对象,提供了一种高效且灵活的方式来组织和操作数据。本文将简要介绍Java容器的主要概念、API以及常用的容器类。 首先,Java容器分为两大主要类别:...

    Java性能优化比较

    另外,使用并发容器,如ConcurrentHashMap,比传统的同步容器(如Hashtable)能提供更好的并发性能。 设计模式是软件工程的通用解决方案,23种设计模式分为创建型、结构型和行为型三大类。在Java性能优化中,工厂...

    Java程序性能相当的好

    Java程序性能优化是开发者在构建高效、稳定应用时必须关注的重要方面。Java作为一种跨平台的编程语言,其性能可以通过多种手段进行提升,包括但不限于代码优化、JVM参数调优、垃圾回收机制理解以及并发处理等。 ...

    Java容器学习笔记:容器概览,容器中的设计模式,容器源码分析 - List,容器源码分析 - Map,容器源码分析 - 并发容

    Java容器学习笔记: 容器概览, 容器中的设计模式, 容器源码分析 - List, 容器源码分析 - Map, 容器源码分析 - 并发容 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,...

    阿里巴巴Java性能调优实战(2021华山版).docx

    7. Java编程性能调优:Java编程性能调优包括基础数据类型、容器调优和网络通信调优等。 8. 多线程性能调优:多线程性能调优包括线程安全性和高并发问题的解决方案。 9. JVM性能监测及调优:JVM性能监测及调优包括...

    java代码性能优化23种技巧

    以上是关于Java代码性能优化的一些基本技巧。在实际开发中,还需要根据具体的应用场景和需求选择合适的优化策略。同时,结合使用现代IDE提供的性能分析工具可以帮助开发者更加精确地定位性能瓶颈,并针对性地采取...

Global site tag (gtag.js) - Google Analytics