1. 能不能把java搞成編譯型語言 有沒有人設計一種編譯器直接把java源碼編譯為機器指令
1. java已經是編譯型語言,因為不編譯源程序是沒法直接運行的。只不過java是編譯成中間的二進制代碼,不是最終的機器代碼。
2.已經有這種編譯器,免費的如gnu的gcj,收費的如Excelsior JET。不過沒有太大必要使用,java在運行時也會把中間代碼動態優化成本地機器代碼,這種優化的結果一般會優於預先編譯的結果,因為動態優化可以因地制宜,根據程序運行情況和計算機硬體的狀況來動態選擇優化策略。
2. 一段java代碼經過jvm會被轉化成匯編語言嗎
理論上說計算機運行的程序都可以被反匯編的。但java這類程序就不一樣了~~~java程序運行在java虛擬機(jvm)里由java虛擬機和操作系統進行交互操作。java源文件在編譯成*.class時,java源代碼被編譯成類似計算機匯編代碼的java匯編代碼(也就是 Java位元組碼),這時java虛擬機就像cpu一樣可以「運行java匯編代碼」所以java的類並不是計算機是機器指令而是由jvm解譯成機器指令運行的。
3. 匯編和編譯程序的區別急
匯編程序是將匯編語言(低級語言)翻譯成二進制機器指令的程序
編譯程序是將高級語言(java,c++)翻譯成二進制機器指令的程序
4. java的代碼是匯編語言嗎
匯編是除了機器語言外的最底層的語言,java是面向對象的語言,是屬於最高級的語言之一了,與匯編語言差的太多。完全不是同一個東西,連相似的地方都幾乎沒有。
至於java的底層是用什麼實現的就不好說了,估計java 的底層應該也是使用的與匯編相似的語言寫的,那麼多復雜的類應該會有一種比較高效的機制來處理。