JAVA編譯時期和運行時期的區別

編譯時期:檢查是否有語法錯誤,若是沒有就將其翻譯爲字節碼文件,.classjava

運行時期:java虛擬機分配內存,解釋執行字節碼文件。框架

java編譯時期會作一些優化操做。ide

一、方法重載 在編譯時執行;方法重寫 在運行時執行。優化

二、泛型(類型檢測),在編譯時。spa

三、註解,有的在編譯時,有的在運行時。@Override註解就是典型的編譯時註解,他會在編譯時會檢查一些簡單的如拼寫的錯誤(與父類方法不相同)等
一樣的@Test註解是junit框架的註解,他是一個運行時註解,他能夠在運行時動態的配置相關信息如timeout等。翻譯

四、AOP 能夠在編譯時,預編譯時以及運行時使用。編譯時:當你有源碼的時候,AOP編譯器(AspectJ編譯器)能夠編譯源碼而且生成編譯後的class;預編譯時:織入過程有時候也叫做二進制織入,用來織入到 已經存在的class文件;運行時:當被織入的對象已經被加載到JVM中後,能夠動態的織入到這些類中的一些信息。代理

五、繼承是在編譯時期運行的對象

六、代理,也成爲動態代理,在運行時期執行。繼承

七、內存

相關文章
相關標籤/搜索