2015-11-04 18 views
1

В документации JVM указано, что short реализован как int, поэтому я задаюсь вопросом, может ли быть какой-либо потенциал для его использования. Может ли это использовать меньше памяти или процесс быстрее?Можно ли использовать 'short' вместо 'int' для циклов с пределом <100?

+3

Указанная вами документация верна. Просто нет смысла, если вы не храните его в массиве. –

ответ

2

Это просто мнение, но я бы сказал, что это не мудро.

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

Например

for (short s = 0; s < Short.MAX_VALUE + 1; s++) 

никогда не останавливается, потому что s++ перетекает молча, в то время как s в s < Short.MAX_VALUE + 1 повышен до int.

Использование типов, меньших, чем int, наилучшим образом зарезервировано для времен, когда вы хотите, чтобы семантика значения 2 байта &, как она переполняется, а не в попытке сэкономить место.

0

Там не совсем перевернутый к нему, посмотреть Anwer на аналогичный вопрос:

https://stackoverflow.com/a/14532302/5490728

Он даже говорит о возможной потере производительности.

Кроме того, как уже указывал zapl, соавторы могут не использовать его и создавать ошибки из него.

(я прочитал это должно быть возможным, чтобы отметить этот вопрос продублировать с 15 репутации, но я не могу найти эту опцию в меню «флаг». Я надеюсь, что этот способ ответа нормально, тоже.)