$ java -cp target/classes com.ankurm.atomics.VarHandleAccessModesDemo plain set(1) / get() -> 1 setOpaque(2) / getOpaque() -> 2 setRelease(3) / getAcquire() -> 3 setVolatile(4) / getVolatile() -> 4 compareAndSet(4, 5) succeeded -> true, second compareAndSet(4, 6) succeeded -> false (expected false - value is 5, not 4, by the second call)