Wenn Sie sehen wollen, wie der Java-Compiler bestimmte Dinge tut, brauchen Sie keine Dekompilierung, sondern eine Disassemblierung. Bei der Dekompilierung wird der Bytecode in Java-Quellcode umgewandelt, was bedeutet, dass viele Low-Level-Informationen verloren gehen, und wenn Sie sich über die Compiler-Optimierung Gedanken machen, sind das wahrscheinlich genau die Informationen, die Sie interessieren.
Wie auch immer, ich habe zufällig ein Buch geschrieben quelloffener Java-Disassembler . Im Gegensatz zu Javap funktioniert dies auch bei hochgradig pathologischen Klassen, so dass Sie auch sehen können, was Obfuskationstools mit Ihren Klassen anstellen. Es kann auch dekompilieren, obwohl ich das nicht empfehlen würde.