I'm not 100% certain of the question that you are asking, but here is a guess at the response.
If you have a look at the implementation of Sequence you will notice the following:
class LhsPadding
{
protected long p1, p2, p3, p4, p5, p6, p7;
}
class Value extends LhsPadding
{
protected volatile long value;
}
class RhsPadding extends Value
{
protected long p9, p10, p11, p12, p13, p14, p15;
}
public class Sequence extends RhsPadding
By placing the padding in an inheritance heirachy this prevents the compiler from reordering the fields across class boundaries. Therefore we could see:
p1, p7, p4, p5, p6, p2, p3
value
p9, p11, p12, p10, p13, p14, p15
But won't see:
p1,
value
p7, p4, p5, p6, p2, p3, p9, p11, p12, p10, p13, p14, p15
Laid out in memory, but there should always be 7 padded values either side of the real value.
Mike.