面试题答案
一键面试常用方法
int get()
:获取当前值。void set(int newValue)
:设置为新值。int incrementAndGet()
:以原子方式将当前值加1,然后返回新值。int getAndIncrement()
:以原子方式将当前值加1,返回旧值。int decrementAndGet()
:以原子方式将当前值减1,然后返回新值。int getAndDecrement()
:以原子方式将当前值减1,返回旧值。int addAndGet(int delta)
:以原子方式将给定值与当前值相加,然后返回新值。int getAndAdd(int delta)
:以原子方式将给定值与当前值相加,返回旧值。boolean compareAndSet(int expect, int update)
:如果当前值 == 预期值,则以原子方式将该值设置为给定的更新值。
原子性操作保证
AtomicInteger类通过使用Unsafe类提供的CAS(Compare and Swap)操作来保证原子性。CAS操作是一种硬件级别的原子操作,它会比较内存中的值与预期值,如果相等则更新为新值,否则不做任何操作。这种操作在硬件层面是原子的,从而避免了多线程环境下数据竞争问题,保证了操作的原子性。