Горячая замена JVM

Что такое горячая замена JVM?

Во многих определениях говорится, что эта функция позволяет обновлять код на лету во время отладки.

И некоторые ограничения, такие как горячая замена, ограничены только обновлением тел методов, и попытка добавить методы и поля в классы не увенчается успехом.

Может ли кто-нибудь объяснить это с помощью кода.


person gautam vegeta    schedule 26.11.2012    source источник
comment
Обычно вы делаете это из своей IDE во время отладки/запуска кода из IDE. Вы вносите изменения в часть своего кода, выполняете горячую замену и возобновляете работу/отладку с новым кодом без перекомпиляции или перезапуска приложения.   -  person assylias    schedule 26.11.2012


Ответы (1)


Все это означает, что вы можете внести определенные изменения в свой код в середине сеанса отладки, и эти изменения вступят в силу немедленно, без перезапуска приложения.

В некоторых случаях это может быть очень удобной функцией. Однако вы обычно ограничены в том, какие виды изменений кода могут быть оперативно заменены в работающем приложении. Точный характер ограничений зависит от вашей цепочки инструментов.

person NPE    schedule 26.11.2012
comment
Если JRebel не используется, любые изменения в структуре класса, включая сигнатуру метода, не могут быть заменены в горячем режиме. В основном это работает только при изменении тела метода. - person Gimby; 26.11.2012
comment
Значит ли это, что если определенное изменение кода вступает в силу без повторного развертывания приложения, это означает, что эта часть кода была заменена в горячем режиме. - person gautam vegeta; 26.11.2012
comment
Чтобы произошла горячая замена, если код компилируется или функция горячей замены сама компилирует код и выполняет горячую замену. - person gautam vegeta; 26.11.2012