根据操作的目标数据类型,可以将JUC包中的原子类分为4类:基本原子类、数组原子类、原子引用类和字段更新原子类。
JDK提供的原子类位于 rt.jar 下的 **java.util.current.atomic** 包下

基本原子类

基本原子类的功能是通过原子方式更新Java基础类型变量的值。

  • AtomicInteger:整型原子类。
  • AtomicLong:长整型原子类。
  • AtomicBoolean:布尔型原子类。

    数据原子类

    数组原子类的功能是通过原子方式更数组中的某个元素的值。

  • AtomicIntegerArray:整型数组原子类。

  • AtomicLongArray:长整型数组原子类。
  • AtomicReferenceArray:引用类型数组原子类。

    引用原子类

  • AtomicReference:引用类型原子类。

  • AtomicMarkableReference:带有更新标记位的原子引用类型。
  • AtomicStampedReference:带有更新版本号的原子引用类型。 :::info AtomicMarkableReference类将boolean标记与引用关联起来,可以解决使用AtomicBoolean进行原子更新时可能出现的ABA问题。
    AtomicStampedReference类将整数值与引用关联起来,可以解决使用AtomicInteger进行原子更新时可能出现的ABA问题。 :::

    字段更新原子类

  • AtomicIntegerFieldUpdater:原子更新整型字段的更新器。

  • AtomicLongFieldUpdater:原子更新长整型字段的更新器。
  • AtomicReferenceFieldUpdater:原子更新引用类型中的字段。