Worth putting a check with an exception if the block size isn't a power of 2? Probably very JIT friendly.

if(desiredBlockSize & desiredBlockSize-1 != 0 )
  throw new IllegalArgumentException("Invalid block size")