this approach allows for a single large byte[] representing multiple objects, to be shared by multiple ByteBufferImpl seeing different slices of it (defined through offset and length). This reduces the number of byte[] created and also the number of byte[] copies.