AtomicInteger类方法讲解

1. AtomicInteger i = new AtomicInteger();

含义

AtomicInteger 是 Java java.util.concurrent.atomic 包下的一个类,它提供了一种线程安全的方式来操作整数。与普通的 int 类型不同,AtomicInteger 可以在多线程环境下安全地进行自增、自减等操作,而不需要额外的同步机制(如 synchronized 关键字)。

当使用无参构造函数 new AtomicInteger() 创建对象时,其初始值默认为 0。

2. i.get() + 2;

含义
  • i.get()AtomicInteger 类的一个方法,用于获取 AtomicInteger 对象当前的值。由于前面创建 i 时使用的是无参构造函数,所以此时 i.get() 返回的值为 0。
  • i.get() + 2 是将 i 当前的值加上 2,在初始情况下,结果为 0 + 2 = 2。不过,这行代码只是进行了加法运算,并没有将结果赋值给任何变量,也没有改变 i 对象的值。因此,这行代码执行后,i 的值仍然是 0。

3. i.getAndIncrement();

含义

i.getAndIncrement() 也是 AtomicInteger 类的一个方法,它的作用是先返回 AtomicInteger 对象的当前值,然后将该对象的值加 1。这是一个原子操作,意味着在多线程环境下,这个操作不会被其他线程干扰。

具体执行过程如下:

  • 首先,返回 i 的当前值(假设此时 i 的值为 0)。
  • 然后,将 i 的值加 1,即 i 的值变为 1。

示例代码及输出验证

以下是一个完整的示例代码,展示了上述操作的执行过程:

java

import java.util.concurrent.atomic.AtomicInteger;

public class AtomicIntegerExample {
    public static void main(String[] args) {
        // 创建一个 AtomicInteger 对象,初始值为 0
        AtomicInteger i = new AtomicInteger();

        // 打印初始值
        System.out.println("初始值: " + i.get());

        // 执行 i.get() + 2 操作,但不改变 i 的值
        int result = i.get() + 2;
        System.out.println("i.get() + 2 的结果: " + result);
        System.out.println("执行 i.get() + 2 后 i 的值: " + i.get());

        // 执行 i.getAndIncrement() 操作
        int previousValue = i.getAndIncrement();
        System.out.println("i.getAndIncrement() 返回的前一个值: " + previousValue);
        System.out.println("执行 i.getAndIncrement() 后 i 的值: " + i.get());
    }
}
输出结果
初始值: 0
i.get() + 2 的结果: 2
执行 i.get() + 2 后 i 的值: 0
i.getAndIncrement() 返回的前一个值: 0
执行 i.getAndIncrement() 后 i 的值: 1

通过这个示例可以清晰地看到每个操作对 AtomicInteger 对象值的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值