java Java代碼的靜態(tài)編譯和動態(tài)編譯中的問題是什么?
Java代碼的靜態(tài)編譯和動態(tài)編譯中的問題是什么?Java代碼通常被靜態(tài)編譯成字節(jié)碼,由相應(yīng)平臺的JVM加載和執(zhí)行。靜態(tài)編譯無法動態(tài)擴展函數(shù)。動態(tài)編譯可以通過兩種方式實現(xiàn):從源代碼編譯、調(diào)用java編譯
Java代碼的靜態(tài)編譯和動態(tài)編譯中的問題是什么?
Java代碼通常被靜態(tài)編譯成字節(jié)碼,由相應(yīng)平臺的JVM加載和執(zhí)行。靜態(tài)編譯無法動態(tài)擴展函數(shù)。動態(tài)編譯可以通過兩種方式實現(xiàn):從源代碼編譯、調(diào)用java編譯器和在JDK(而不是JRE)上運行。動態(tài)字節(jié)碼生成技術(shù)(如cglib、ASM)創(chuàng)建類。動態(tài)編譯可以簡化代碼,增強類功能,但也帶來了代碼的復(fù)雜性,不易在線維護(hù)。
java的動態(tài)編譯有什么用?
動態(tài)編譯的目標(biāo)代碼與環(huán)境相關(guān)。
所以不能提前編譯。
Java中如何動態(tài)生成一個類和這個類的對象并且存入數(shù)據(jù)庫?
1. 上面的想法是正確的,但是在大多數(shù)情況下,不建議在動態(tài)編譯之前動態(tài)地生成類,這在Java中是不好的;
2。如果需要動態(tài)腳本類,可以用腳本語言(如grooy)或規(guī)則引擎(drools)來存儲和解釋運行;
3也可以通過設(shè)計模式來解決,有很多解決方案,可以詳細(xì)解釋場景,方便做有針對性的解答。