wilah написал(а):
В С++, обычно, используется. Я читал на хабре, что можно хук вставить.
В первый раз о таком слышу (хотя я С++ не знаю и изучать не собираюсь), можешь дать ссылку?
По моему nop используется:
1) Во всяких микроконтроллерах (преимущественно простых) для задержек
2) Для выравнивания команд на некоторых процессорах.
Например, процессор может читать данные из памяти по 32 бита за раз по адресам кратным 4 байтам, а команды имеют переменную длину от 1 бата. Тут иногда целесообразно вставить nop, чтобы следующие команды считались за одну пересылку по шине.
3) Из-за особенностей организации конвейера выполнения команд на некоторых процессорах, команда nop вставленная в нужном месте может немного ускорить выполнение программы.
4) Использование ошибок переполнения буффера для выполнения произвольного кода.
Во втором и третьем случае что-либо сделать вручную весьма трудно, это делают компиляторы. Еще несколько раз я вставлял в код на Си nop, чтобы поставить на него точку останова в отладчике.
Разумеется все эти случаи применительно к джаве не имеют смысла, поэтому зачем нужен nop в джаве для меня загадка.