Java-массив байтов - PullRequest
       1

Java-массив байтов

3 голосов
/ 29 августа 2011

Если я создам массив байтов с byte[], каков будет размер каждого элемента? Можно ли изменить их размер / объединить?

Спасибо,

Ответы [ 3 ]

6 голосов
/ 29 августа 2011

Не уверен, что вы имели в виду, изменив размер и объединив

из документации:

byte: Тип данных байта - это 8-разрядное целое число со знаком, состоящее из двух чисел со знаком. Он имеет минимальное значение -128 и максимальное значение 127 (включительно). Байтовый тип данных может быть полезен для сохранения памяти в больших массивах, где экономия памяти действительно имеет значение. Их также можно использовать вместо int, где их пределы помогают уточнить ваш код; тот факт, что диапазон переменной ограничен, может служить формой документации.

Редактировать: Если при изменении размера / слияния вы говорите о самом массиве, в байтовом массиве нет ничего особенного по сравнению с другими массивами.

3 голосов
/ 29 августа 2011

Существует два способа размещения массива.

A) выделение пустого массива заданного размера:

byte[] ba1 = new byte[18]; // 18 elements

B) выделение массива путем указания содержимого

byte[] ba2 = {1,2,3,4,5}; // 5 elements
2 голосов
/ 29 августа 2011

Размер был бы байтом за элемент.

Их нельзя изменить.Однако вы можете объединить их самостоятельно, используя System.arrayCopy (), создав новый массив и скопировав ваши исходные массивы в новый массив.

Редактировать 1:

Существует также 8-байтовая нагрузкадля заголовка объекта и 4-байтовой служебной информации для длины массива, для общей служебной информации в 12 байтов.Поэтому маленькие массивы относительно дороги.

Проверьте GNU Trove и Fastutil .Это библиотеки, облегчающие работу с примитивными коллекциями.

Редактировать 2:

В одном из ваших ответов я прочитал, что вы делаете сериализацию объектов.Вы можете быть заинтересованы в ByteBuffers.Это позволяет легко записывать различные типы примитивов в обернутый массив и получать полученный массив.Также проверьте буферы протокола Google , если вы хотите легко сериализованные структурированные типы данных.

...