Decompiler and disassembler are essential tools for any sharp-sighted programmers. No matter which programming languages, they have their corresponding decompilers. For compiled Java binary class file, there are two excellent decompilers: they are freeware Java Decompiler and commercial software DJ Java Decompiler (AppNee will release its related resources later).
Thinking in Java is known as the bible in Java programming, which is worth reading over and over again, even if you're not a Java programmer. It is not hard to see this is a classic work from the various rewards it got and earnest reviews from book readers all over the world. Here you can get its 4th Edition (1057 pages).