В С++, обычно, используется. Я читал на хабре, что можно хук вставить. Ну в Джаве достаточно вставить нужный байткод и передать ему параметры.
NOP хранится в .class. Это не очень хорошо. Байт мало, да, но ведь отсутствие байткода еще меньше. А JIT сам решает, что убирать, а что вставлять. Но...