2012-11-26 7 views
6

Co to jest JVM Hot Swapping?JVM HOT Zamiana

Wiele definicji mówi, że ta funkcja umożliwia aktualizację kodu w locie podczas usuwania błędów.

I kilka ograniczeń, takich jak wymienianie na gorąco, ogranicza się tylko do aktualizacji jednostek metod, a próba dodania metod i pól do klas nie powiodłaby się.

Czy ktoś może wyjaśnić to za pomocą kodu.

+0

Zazwyczaj robisz to z IDE podczas debugowania/uruchamiania kodu z IDE. Wprowadzasz zmiany w części kodu, wymieniasz ją na gorąco i wznawiasz pracę/debugowanie za pomocą nowego kodu bez konieczności ponownej kompilacji lub ponownego uruchamiania aplikacji. – assylias

Odpowiedz

11

Wszystko to oznacza, że ​​możesz dokonać pewnych zmian w kodzie podczas sesji debugowania, i że te zmiany będą obowiązywać natychmiast, bez konieczności ponownego uruchamiania aplikacji.

Może to być bardzo przydatna funkcja w niektórych okolicznościach. Zwykle jednak typowe ograniczenia dotyczące zmian kodu można włączyć do działającej aplikacji. Dokładny charakter ograniczeń zależy od twojego toolchain.

+0

Gdy nie korzystamy z JRebel, wszelkie zmiany struktury klas, w tym podpis metody, nie mogą być wymieniane na gorąco. Zasadniczo tylko przy zmianie bryły metody działa. – Gimby

+1

Oznacza to, że jeśli zmiana kodu zostanie wprowadzona bez ponownego wdrażania aplikacji, oznacza to, że ta część kodu została wymieniona na gorąco. –

+0

Aby wystąpiła wymiana na gorąco, należy skompilować kod lub sama funkcja szybkiego zrzutu kompiluje kod i zamienia na gorąco. –