volatile
. Such declarations
may be confusing because accessing the array itself follows the rules for volatile
fields, but accessing the array's contents does not.
Example:
class Data {
private volatile int[] idx = new int[0];
}
If such volatile access is needed for array contents, consider using
java.util.concurrent.atomic
classes instead:
class Data {
private final AtomicIntegerArray idx = new AtomicIntegerArray(new int[0]);
}