I was wondering what is meant with decompiling Java code. Does it mean that the native code is translated back to byte code and then to source code? I was also wondering which role the RAM plays when a java program is compiled. Do decompiling tools get the native code in RAM?
Does it mean that the native code is translated back to byte code and then to source code?
Usually, decompiling means turning the byte code back into Java code.
The JVM does de-optimise native code back into byte code to avoid keeping two copies of the code in memory. However the JVM never turns it back into source code.
I was also wondering which role the RAM plays when a java program is compiled.
The Java compiler uses RAM like any other Java program. Nothing special happens when it is compiled in terms of RAM used.
Do decompiling tools get the native code in RAM?
No. Decompiling from byte code is simpler, faster and easier.