Most bitshift solutions I have seen for converting an int to a byte array go like this:
return new byte [] {
    (byte) ((i >> 24) & 0xFF),
    (byte) ((i >> 16) & 0xFF),
    (byte) ((i >> 8) & 0xFF),
    (byte) (i & 0xFF);
}
Why the & 0xFF??
Most bitshift solutions I have seen for converting an int to a byte array go like this:
return new byte [] {
    (byte) ((i >> 24) & 0xFF),
    (byte) ((i >> 16) & 0xFF),
    (byte) ((i >> 8) & 0xFF),
    (byte) (i & 0xFF);
}
Why the & 0xFF??
& 0xFF is redundant and makes no difference in the given case