zoukankan      html  css  js  c++  java
  • Java集合笔记

    参考:https://blog.csdn.net/column/details/collection.html

    仅作参考,待后续添加

    ArrayList:

    1: 基于数组的集合,查询快,使用时最好知道数据的数量。线程不安全。

    2: JAVA 1.7 中默认初始化空的数组,第一次新加元素是会初始化10个元素空间的数组。当数组容量不够时,会创建一个1.5倍容量的新数组,并将原来的元素copy进新数组。

    3: 数据复制, Arrays.copyOf() 和System.arraycopy 方法, 最后调用的都是 System.arraycopy, 此方法是本地方法, 在 openJDK中可以看源码

    4: 序列化-->  transient Object[] elementData 不可被序列化, 需要ObjectOutputStream/ObjectInputStream 利用反射调用ArrayList私有的序列化方法readObject/writeObejct,

    5: fail-fast 理论, modCount == expectedModCount 报错原因: 在更改数组结构的同时没有将modCount 赋值给expectedModCount。这是迭代器可以remove的根本原因,删除后将modCount赋给了 expectedModCount,所以判断是相等的。

      解决: 1. 使用Collections.synchronizedList   不推荐,增删有同步锁

          2. 可以使用CopyOnWriteArrayList, 读写分离

    LinkedList:

    Vector:

    HashMap:

    HashSet:

    HashTable:

    并发库集合容器:

    ConcurrentHashMap:

    CopyOnWriteArrayList:

  • 相关阅读:
    PHP5.4中新增的traits
    PHP各版本的区别
    冒泡排序原理
    服务器&linux
    PHP
    excel 导出
    try cache
    sql
    Linux下php安装Redis扩展
    Redis安装部署
  • 原文地址:https://www.cnblogs.com/liangzg/p/9512115.html
Copyright © 2011-2022 走看看