На самом деле, я подозреваю, что вы можете получить удар по производительности. Существуют только Java-байт-коды для побитовых операций со значениями int
и long
. Таким образом, значения short
в переменных permission
и requested
должны (в теории) быть расширены до того, как будет выполнена операция.
(И кроме того, я думаю, вы обнаружите, что нативные побитовые инструкции доступны только в 32- и 64-битных версиях. Или, если есть 8- или 16-битные версии, они будут использовать то же количество тактов, что и 32-битные версия. Пути к данным ЦП будут иметь ширину не менее 32 бит, и для и / или / xor нет способа заставить более узкие типы работать быстрее.)
Кроме того, хотя три переменные имеют тип short
, JVM выделит одинаковое количество байтов для их хранения. Это является следствием того, как спроектирована JVM.
Так что, если ваша цель в использовании short
состояла в том, чтобы сэкономить пространство или время, это, вероятно, не поможет. Но единственный способ убедиться в этом - использовать профилировщик для сравнения версий вашего приложения short
и int
... или, что еще лучше, просто забудьте об этом.