Instead of allocating space, et al, an approach using ByteBuffer
from java.nio
....
byte[] arr = { 0x01, 0x00, 0x00, 0x00, 0x48, 0x01};
// say we want to consider indices 1, 2, 3, 4 {0x00, 0x00, 0x00, 0x48};
ByteBuffer bf = ByteBuffer.wrap(arr, 1, 4); // big endian by default
int num = bf.getInt(); // 72
Now, to go the other way.
ByteBuffer newBuf = ByteBuffer.allocate(4);
newBuf.putInt(num);
byte[] bytes = newBuf.array(); // [0, 0, 0, 72] {0x48 = 72}