170 похожих чатов

Добрый день, подскажите пожалуйста, для чего в джаве существует тип

данных byte, кроме того, что используется для экономии памяти?

12 ответов

17 просмотров

что бы совсем простые примеры - для байтовой передачи. т.е. есть картинка - как ты её передашь? набором байтов- вот они байты, универсальные на всё гораздые)

Для экономии памяти и существует, это основное предназначение. Второе предназначение - для автоматического ограничения диапазона значений. Если ты точно знаешь, что у тебя данная величина никогда не выйдет за пределы -128..+127, то можно это статически зафиксировать в коде программы, используя тип byte. Это несколько спорный сценарий, потому что по факту диапазон довольно произвольный, да и работа с таким типом плохо организована в джаве. Но иногда имеет право на существование. В целом правило большого пальца - не использовать его, если у тебя нет хорошей причины его использовать.

Tagir Valeev
Для экономии памяти и существует, это основное пре...

А разве под byte по факту не будет под капотом выделено памяти соизмеримо с интом из-за всяких оптимизаций, сдвигов и подгонов под машинное слово? Про перегонку в инт в промежуточных операциях вообще молчу

Alex Verkhoglyad
А разве под byte по факту не будет под капотом выд...

Далеко не всегда. Если ты выделяешь массив байт (а это наиболее частый случай использования типа byte), то выравнивание будет общее на весь массив, а не на каждый элемент

Evg Resh
ByteArray, не?

тебя слово Байт в названии не смутил?

Alex JD
тебя слово Байт в названии не смутил?

Ну так это не одно и то же, насколько я знаю, ByteArray вообще оффхип, вроде. Может и херню несу.

Tagir Valeev
Для экономии памяти и существует, это основное пре...

Так всегда int по умолчанию) если уже не влезает - long🌚

Alex Verkhoglyad
А разве под byte по факту не будет под капотом выд...

Можно не только память экономить, если вспомнить самые основы, то в byte у нас вмещается 1 байт, а в int - 4, намного проще передать по сети 1 байт, вместо 4-х, самый явный по моему пример этого - ByteBuf из Netty. Это конечно мелочи, но всё таки, есть смысл выбирать тип данных, а не проставлять int где попало. А теперь можно задуматься над массивом byte, передать его по сети в 4 раза проще, чем массив из int, при этом, значения в массиве могут быть 1 в 1.

Почитай Шилдта

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта