The subject of decompiling Java - or trying to protect it with obfuscators - has come up in these forums previously.
Now, there's a book that covers the subject in depth. Decompiling Java, by Godfrey Nolan, is published by Apress.
It goes deep into compilation and reverse-engineering and even walks through how to build an obfuscator and a decompiler.
Check out the sample code