Я начну с предположения, что вам запрещено использовать даже примитивные типы массивов Java. В этом случае вам придется вернуться к самым основам и начать управлять памятью самостоятельно. Вам нужно начать с выделения байтового массива или байтового буфера соответствующего размера. Затем доступ к этому блоку данных будет обрабатываться с использованием того, что в C было бы простым указателем математики.
Пример 1D массива 16 дюймов:
byte[] mem = new byte[16 * 4] ; // Ints are 4 bytes long
// Write a value to the 8th element of our "array"
index = 8 ;
int value = 31415926 ;
mem[4 * index + 0] = (byte)( value >> 24 ) ;
mem[4 * index + 1] = (byte)( ( value << 8 ) >> 24 ) ;
mem[4 * index + 2] = (byte)( ( value << 16 ) >> 24 ) ;
mem[4 * index + 3] = (byte)( ( value << 24 ) >> 24 ) ;
Чтение значения будет выполнено путем обращения процесса и вычисления сохраненного значения int.
Примечание. Процесс установки и извлечения значений проще с использованием ByteBuffer, поскольку он позволяет получать и помещать примитивные типы Java в байтовый массив.