Это полностью зависит от деталей реализации декомпилятора. Декомпилятор не знает имен и типов ваших локальных переменных, поэтому он должен использовать некоторую эвристику для восстановления его по байт-коду.
Ваш байт-код выглядит следующим образом:
0: sipush 140
3: istore_1
4: bipush 116
6: istore_2
7: bipush 116
9: istore_3
Как видите, 140
рассматривается как константа типа short
, тогда как 116
обрабатывается как константа типа byte
(это связано с тем, что 116
помещается в байт со знаком , но 140
нет).
Теперь декомпилятор пытается угадать, что это может означать в исходном коде. Похоже, что декомпилятор обрабатывает разницу в типах констант как разницу в типах локальных переменных (также он может использовать сигнатуру print()
, выбранную компилятором в качестве подсказки для определения типа t
), а имена переменных генерируются в зависимости от по типам (c
для char
, i
и j
для int
).
Смотри также: