there are a pretty good no. of decompilers available. they can convert class files back to understandable but a bit different java code. Most of ur variable names will also be retained, though in some cases, it will use its own nomenclature. Also see obfuscators which are used to complicate the code beyond understandable limits.