В документации JVM указано, что short реализован как int, поэтому я задаюсь вопросом, может ли быть какой-либо потенциал для его использования. Может ли это использовать меньше памяти или процесс быстрее?Можно ли использовать 'short' вместо 'int' для циклов с пределом <100?
ответ
Это просто мнение, но я бы сказал, что это не мудро.
- Вы отклоняетесь от стандарта, который все знают. Людям внезапно нужно подумать о правильности и намерении ваших циклов. Это тратит драгоценное время разработки, которое, возможно, даже дороже, чем несколько байт памяти.
- Он также вводит тонкие ошибки, когда в какой-то момент кто-то меняется от 100 до большего значения: компилятор не жалуется, но вы можете создавать бесконечный цикл.
Например
for (short s = 0; s < Short.MAX_VALUE + 1; s++)
никогда не останавливается, потому что s++
перетекает молча, в то время как s
в s < Short.MAX_VALUE + 1
повышен до int
.
Использование типов, меньших, чем int
, наилучшим образом зарезервировано для времен, когда вы хотите, чтобы семантика значения 2 байта &, как она переполняется, а не в попытке сэкономить место.
Там не совсем перевернутый к нему, посмотреть Anwer на аналогичный вопрос:
https://stackoverflow.com/a/14532302/5490728
Он даже говорит о возможной потере производительности.
Кроме того, как уже указывал zapl, соавторы могут не использовать его и создавать ошибки из него.
(я прочитал это должно быть возможным, чтобы отметить этот вопрос продублировать с 15 репутации, но я не могу найти эту опцию в меню «флаг». Я надеюсь, что этот способ ответа нормально, тоже.)
Указанная вами документация верна. Просто нет смысла, если вы не храните его в массиве. –