Любой, кто использует короткие и байтовые примитивные типы, в реальных приложениях?

Я программировал на Java с 2004 года, в основном это корпоративные и веб-приложения. Но я никогда не использовал короткие или байт, кроме игрушечной программы, чтобы знать, как работают эти типы. Даже в циклах в 100 раз мы обычно идем с int. И я не помню, имел ли я когда-либо какой-либо код, который использовал байты или короткие, кроме некоторых общедоступных API и фреймворков.

Да. Я знаю, вы можете использовать короткий или байт для экономии памяти в больших массивах, в ситуациях, когда на самом деле важно экономить память. Кто-нибудь хочет практиковать это? Или это просто что-то в книгах.

[Отредактировано]

Использование байтовых массивов для сетевого программирования и сокетной связи - довольно распространенное использование. Спасибо, Даррен, чтобы указать на это. Теперь как насчет короткого? Райан, дал отличный пример. Спасибо, Райан.

Ответ 1

Имейте в виду, что Java также используется на мобильных устройствах, где память намного ограничена.

Ответ 2

Я использую байт много. Обычно в виде массивов байтов или ByteBuffer для сетевой связи двоичных данных.

Я редко использую float или double, и я не думаю, что когда-либо использовал короткий текст.

Ответ 3

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

Однако я практически никогда не использовал "float" или "double".

Ответ 4

Основное использование, которое я видел для них, - это обработка данных с неизвестной структурой или даже никакой реальной структуры. Сетевое программирование является примером первого (кто бы ни посылал данные, знает, что это значит, но вы не можете), например, сжатие изображений с 256-цветными (или полутоновыми) изображениями является примером последних.

Сверху моей головы grep приходит на ум, как другое использование, как и всякое копирование файла. (Конечно, ОС будет делать это, но иногда это недостаточно.)

Ответ 5

Сам язык Java делает неоправданно трудным использование типов byte или short. Всякий раз, когда вы выполняете какую-либо операцию со значением byte или short, Java сначала продвигает ее к int, а результат операции возвращается как int. Кроме того, они подписаны, и нет никаких равнозначных эквивалентов, что является еще одним частым источником разочарования.

Итак, вы в конечном итоге используете byte много, потому что он по-прежнему является основным строительным блоком всех вещей кибер, но тип short тоже не может существовать.

Ответ 6

До сегодняшнего дня я не заметил, как редко я их использую.

Я использую байт для связанных с сетью материалов, но в большинстве случаев они были для моих собственных инструментов/обучения. В рабочих проектах эти вещи обрабатываются с помощью фреймворков (например, JSP)

Short? почти никогда.

Long? Ни.

Мои предпочтительные целые литералы всегда являются int, для циклов, счетчиков и т.д.

Когда данные поступают из другого места (например, базы данных), я использую правильный тип, но для литералов я всегда использую int.

Ответ 7

Я использую байты в разных местах, в основном, используя обработку данных низкого уровня. К сожалению, разработчики языка Java сделали байты подписанными. Я не могу придумать, в какой ситуации отрицательные байтовые значения были полезны. Наличие диапазона 0-255 было бы намного более полезным.

Я не думаю, что когда-либо использовал шорты в любом правильном коде. Я также никогда не использую float (если мне нужны значения с плавающей запятой, я всегда использую double).

Я согласен с Tom. В идеале, на языках высокого уровня мы не должны заботиться об основных представлениях машин. Мы должны иметь возможность определять собственные диапазоны или использовать произвольные числа точности.

Ответ 8

когда мы программируем для электронных устройств, таких как мобильный телефон, мы используем байты и короткие. В этом случае мы должны заботиться об управлении памятью.

Ответ 9

Возможно, более интересно посмотреть на семантику int. Являются ли эти произвольные ограничения и тихая усечка тем, что вы хотите? Для кода на уровне приложений действительно нужны произвольные размерные целые числа, просто так, что Java не имеет возможности выразить их разумно.

Ответ 10

Я использовал байты при сохранении состояния при проверке модели. В этом приложении экономия пространства стоит дополнительной работы. В противном случае я никогда их не использую.

Ответ 11

Я обнаружил, что при использовании низкоуровневой обработки изображений я использовал байтовые переменные. Процедуры рисования .Net GDI + были очень медленными, поэтому я вручную снял свои собственные.

В большинстве случаев я придерживаюсь знаковых целых чисел, если я не вынужден использовать что-то большее, учитывая проблемы. Любое физическое моделирование, которое я обычно делаю, требует поплавков или удвоений, даже если мне не нужна точность.

Ответ 12

Apache POI использовал short несколько раз. Вероятно, из-за ограничения числа строк/столбцов Excel.

Несколько месяцев назад они заменили на int на замену

createCell (short columnIndex)

с

createCell (int column).

Ответ 13

В datagrids в памяти это может быть полезно. Концепция datagrid как Gemfire - иметь огромную распределенную карту. Когда у вас недостаточно памяти, вы можете переполняться на диск с помощью стратегии LRU, но ключи всех записей вашей карты остаются в памяти (по крайней мере, с Gemfire).

Таким образом, очень важно сделать ваши ключи с небольшим размером, особенно если вы обрабатываете очень большие наборы данных. Для значения записи, когда вы можете также лучше использовать соответствующий тип с небольшим размером памяти...

Ответ 14

Я использовал шорты и байты в Java-приложениях, обмениваясь данными с пользовательскими usb или последовательными микроконтроллерами для получения 10-битных значений, завернутых в 2 байта в качестве шорт.