Оставляя в стороне философские аргументы и оправдания ...
Прежде всего short
- это специальный тип данных. Java на самом деле не нравится short
. Java на самом деле действительно любит int
, потому что стек JVM использует 32-битные регистры . И short
- это 16-битный тип данных (int
= 32-битный).
Из-за 32-битной структуры всякий раз, когда java перемещает короткое замыкание в стек, он автоматически конвертируется в целое число. Итак, первое, о чем стоит задуматься, действительно ли я хочу использовать short
в java? Они приходят действительно с ценой. Вот почему вы редко когда-либо увидите использование short
типов данных в исходном коде jdk.
JVM использует операцию i2s
при преобразовании целого числа в короткое. Точная стоимость будет зависеть от того, какую JVM вы используете и ваше оборудование.
Вы можете найти некоторые характеристики в этой статье , но i2s
, к сожалению, нет в списке. Это должно занять менее 20 нс.