0 is the first element in the array; so, I bet that wasn't a constant, but honestly what the programmer did.
In either case, we have the bytecode; and shouldn't what is written above compile to the same bytecode?
In either case, we have the bytecode; and shouldn't what is written above compile to the same bytecode?
public class C { public int foo() { return 1; int b = 1 + 2; } }
Then compile it (javac C.java). You will get the following:
C.java:4: unreachable statement int b = 1 + 2; ^ C.java:5: missing return statement } ^ 2 errors
Therefore this code is not compileable, thus telling us that the initial code blob could never have run in the first place.
I'm not sure why the decompiler returns non-compiling java code, I just know it does.