It completely depends on the implementation details of the decompiler. Decompiler does not know the names and types of your local variables, so it must use some heuristics to recover it from bytecode.
Your bytecode is as follows:
0: sipush 140
3: istore_1
4: bipush 116
6: istore_2
7: bipush 116
9: istore_3
As you can see, 140 treated as a constant of type short , while 116 treated as a constant of type byte (this is because 116 fits into the signed byte, but 140 not).
Now the decompiler is trying to guess what this might mean in the source code. It seems that the decompiler considers the difference in constant types as the difference in the types of local variables (it can also use the print() signature chosen by the compiler as a hint for determining the type of t ), and variable names are generated depending on the types ( c for char , i and j for int ).
See also:
source share