Я не совсем уверен, что вы спрашиваете здесь, но каждый объект в Java (и это включает в себя массивы) имеет информацию о типе времени выполнения, связанную с ним.Поэтому, когда вы приводите объект к другому типу, сразу же генерируется исключение, если новый тип не совпадает.Это сильно отличается от C / C ++, где вы можете просто сказать компилятору обрабатывать блок памяти как любой объект, которым вы хотите, чтобы он был.
Если вы ищете код для преобразования произвольного набора байтовв объект или наоборот, вам нужно будет сделать это по-другому, используя встроенные средства сериализации или развернув собственный код преобразования.