Javaの黒魔術

Javaの黒魔術の最たるものってなんだろなーと考えたことがあって、BCELみたいなバイトコードを直接いじっちゃうのがそれではないかと思ったりした。
もちろんRubyだって動的にクラスをいじることはできるけど、動的な型付けの言語のそれとは少し性質が違うような気がする。
それを踏まえると、Javaってアスペクト指向方面で一歩秀でてる気がするんだけど、実際どうなんだろ?