小屋創作

日誌2020-09-02 14:54

【JAVA筆記】JAVA執行期間編譯JAVA檔案

作者:LF(小魚)


一、介紹:
在程式執行期間才進行編譯是一個可以靈活執行程式的方法
而在程式執行期間才讀取類別是一個可以節省部分記憶體的方法

程式內應該會有被設定成靜態(static)的方法或物件,靜態的方法在程式執行的最一開始就會被賦予記憶體,除非該值未空(null),但有時會想使用靜態(static)的變數但又只是在某些時候才執行幾次,而大部分時間都用不到時,就可以使用類別讀取器(ClassLoader)來讀取,並用反射功能來執行,這裡使用了java.lang的ClassLoader和java.net的URLClassLoader來讀取類別

而如果想要在執行期間編修邊測試,在運行時間過長或過於複雜時,在程式執行間編譯檔案室一個很不錯的做法,這裡使用javax.tools的一系列類別來做編譯

hi.java的內容

用javax.tools來編譯和java的javac編譯有很大的不同
javac的編譯是使用javac.exe執行檔來編譯,在java程式內部靈活性不高,javax.tools的編譯是純java的編譯,因此,可以在java程式內部輕鬆的直接運用,靈活性很高。
另外一個說法,用javac來編譯,每編譯一次就會開啟一個JVM(Java Virtual Machine),javax.tools則是直接在原JVM內編譯,效率比較高


0

0

LINE 分享

相關創作

【CS50x作業】自製 Scratch 遊戲:Unfairy Shooting Game

promise.all 有一個失敗就不會往下做其他promise了,如何無痛讓promise做事 - promise.all的陷阱

2024 的個人網頁設計

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】