I never guessed reverse engineering will be so easy. Is it true for all java code or just android?
For android apps decompilation overall is so simple. Although don’t bank on understanding the code as the app providers make their code cryptic most probably due to this reason(the process is called obfuscation).
That being said you can decompile almost every app on android. It is just vagueness of code which is going to save you(for the app developers) and make life tough for the hackers.
So basically .apk is nothing but zipped version of all your resources and compiled classes. You can extract all this from .apk the use tool like
dex2jar or even simpler use some online website which does so.
java decompilation is also so easy I guess till Java 1.5?