Heim > Fragen und Antworten > Hauptteil
Meine Frage ist
Ich ändere den Java-Code und dann wird die Seitenanforderung ausgeführt, und der Server kompiliert sie automatisch in Bytecode und sendet ihn zur Ausführung an die JVM. Warum müssen wir die JVM neu starten, um den geänderten Code auszuführen?
滿天的星座2017-06-14 10:53:37
java 有很多热部署方案啊。https://www.google.com/search...
但是热部署会影响性能,而且在生产环境中,java 代码部署的频率是很低的。
所以,一般都是在开发环境中开启热部署。
某草草2017-06-14 10:53:37
热部署的本质是替换class,也就是说需要把旧的class从内存里踢掉再重新加载新的class,这里就涉及了类的卸载,而卸载一个类的条件之一是它的ClassLoader可以被垃圾回收给收走。反过来如果ClassLoader不能被回收掉的话,那就只能重启java了。