java典型工具类特征

基础集合:
ArrayList: 数组结构,容量最高Integer.MAX_VALUE,初始默认容量10,每次扩容1.5倍
LinkedList:链表结构,无限队列
HashMap:数组+链表(8+红黑树),初始默认容量16,上限1<<30,负载因子0.75,每次扩容2倍

基础拓展集合:
HashSet: 内部靠将值设置为HashMap的key值来进行去重
LinkedHashMap:继承HashMap,重写节点结构,加入指针保证读取有序。
TreeSet: 红黑树结构,自然排序或者自定义排序。

并发工具:
UnSafe:java加锁底层工具类,支持cas
LockSupport:推荐程序中使用的底层加锁工具
AbstractQueuedSynchronizer :AQS结构抽象类,多数加锁类的父类
ReentrantLock: 支持公平锁与非公平锁
ReentrantReadWriteLock:读写锁
CountDownLatch:线程执行递减计数器
CyclicBarrier:线程栅栏
Semaphore:控制线程通过数量
Exchanger:线程间数据交换工具
并发数据结构:
ConcurrentHashMap:分段锁 数组+链表 ,最大容量Integer.MAX_VALUE - 8,扩容机制与HashMap相同
ConcurrentLinkedQueue:双端加锁,单向队列,cas往队尾加节点
ConcurrentLinkedDeque:双向链表结构的无界并发队列,首尾均可cas添加节点
ConcurrentSkipListMap:跳表结构,有序结构,并发越多相对ConcurrentHashMap性能越高
CopyOnWriteArrayList:Object数组结构,修改时直接更换新数组批量复制过去,一个ReentrantLock全局锁解决并发问题
CopyOnWriteArraySet: 底层靠CopyOnWriteArrayList的addIfAbsent()方法实现去重
CAS典型工具类:
AtomicInteger、AtomicLong、AtomicBoolean:其中布尔型内部是int值
AtomicLongArray:内部是long[]数组
AtomicReference :内部定义一个泛型变量,对这个变量进行cas计算赋值
AtomicReferenceArray:内部定义Object[]数组
AtomicStampedReference:用版本号解决ABA问题

线程池工具:
Executors:jdk自带创建线程池工具
ExecuteService:线程池接口
AbstractExecuteService:线程池抽象类
ScheduledExecutorService:调度线程池

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值