Есть несколько вещей, которые следует учитывать.
1) Как обсуждалось выше, JVM не имеет представления о байтах или коротких типах. Обычно эти типы не используются в вычислениях на уровне JVM; так что можно подумать, что эти литералы будут использовать меньше.
2) Для инициализации байтовых и коротких переменных, если выражение int является постоянным и находится в допустимом диапазоне типа, оно неявно приводится к целевому типу.
3) Букву всегда можно разыграть, например, (короткий) 10