zoukankan      html  css  js  c++  java
  • ArrayList、Vector、LinkedList、HashMap、HashTable的存储性能和特性

    ArrayList和Vector都是使用数组方式存储数据,次数组元素大于实际存储的数据以便添加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通过性能上校ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项即可,所以插入速度较快。

    HashMap和HashTable的区别:

    二者都实现了 Map 接口,是将惟一键映射到特定的值上;
    主要区别在于:
    1)HashMap 没有排序,允许一个 null 键和多个 null 值 , 而Hashtable 不允许;
    2)HashMap 把 Hashtable 的 contains 方 法 去 掉 了 , 改 成containsvalue 和 containsKey, 因为 contains 方法容易让人引起误解;
    3)Hashtable 继承自 Dictionary 类,HashMap 是 Java1.2 引进的Map 接口的实现;
    4)Hashtable 的方法是 Synchronized ,而 HashMap 不是,在多个线程访问 Hashtable 时,不需要自己为它的方法实现同步, 而HashMap 就必须为之提供外同步。 Hashtable 和 HashMap 采用 的hash/rehash 算法大致一样,所以性能不会有很大的差异。

    需要了解的知识

    1、外同步

    外同步法是指由发送端发送专门的同步信息(常被称为导频),接收端把这个导频提取出来作为同步信号的方法。由于导频本身并不包含所要传送的信息,对频率和功率有限制,要求导频尽可能小地影响信息传送,且便于提取同步信息。外同步法主要在载波同步及位同步系统中应用。

    2、自同步法

    自同步法是指发送端不发送专门的同步信息,接收端设法从接收到的信号中提取同步信息的方法。这种方法效率高,但收端设备相对外同步法较为复杂。

  • 相关阅读:
    冲刺第一天
    Nacos微服务体系配置管理
    Nacos配置中心客户端程序
    Nacos配置中心最佳实践
    SpringCloud2020整合Nacos-Bootstrap配置不生效的解决
    18.SpringCloud Alibaba Nacos服务注册和配置中心
    17、SpringCloud Alibaba入门简介
    SpringBoot热部署
    SpringBoot请求处理-常用参数注解使用
    5、创建springcloud alibaba工程
  • 原文地址:https://www.cnblogs.com/holyshengjie/p/6500526.html
Copyright © 2011-2022 走看看