JAVA虛擬機是用什么語言寫的
- 作者:新網
- 來源:新網
- 瀏覽:100
- 2018-05-11 15:19:26
JAVA中就虛擬機是其他語言開發(fā)的,用的是C語言加上匯編語言,基于此之上就是JAVA本身了,虛擬機只是一個解析的作用。JAVA并不比C語言慢,說JAVA慢一般是九十年代那時候的JAVA。
JAVA中就虛擬機是其他語言開發(fā)的,用的是C語言加上匯編語言,基于此之上就是JAVA本身了,虛擬機只是一個解析的作用。JAVA并不比C語言慢,說JAVA慢一般是九十年代那時候的JAVA。
![blackfriday.jpg](http://imgu.xinnet.com/d/file/20180511/c25dd79be294d7ebfd6a5b1eb12cd307.jpg)
<
div> 在一段優(yōu)秀的JAVA程序和C程序執(zhí)行效率上來比較是沒有多大差距的 并且現在JAVA已經可以像C語言那樣,直接編譯為可執(zhí)行文件(不用虛擬機,跨平臺為代價)了
不知道你看過 卓越編程之道二(運用底層思維編寫高級代碼) 沒有,那里面詳細的講述了高級語言從編寫到編譯執(zhí)行的過程,通過目標文件的反匯編對比,發(fā)現C,C++,JAVA,dephi等語言在同等質量下的目標文件長度上基本上沒多大區(qū)別,一門語言的運行速度快慢,與你編寫代碼過程中是否符合編譯器規(guī)則息息相關。 有空你可以去看看這本書。
Java底層實現是用C語言寫的,因為做了很多封裝,所以比C語言速度慢?
JVM是c寫的,所以對JVM常用的攻擊就是buffer overflow。
在
windows平臺的JVM實現是用VC寫的,你下載的JDK其實都有一個src.zip,那就是Java的源碼 。
原始是用C寫的,如javac命令等,后面的功能是java自身寫的,如api,現在大多都開源了,有興趣可以看看那個項目,叫openjdk,你也可以提供代碼,說不定后續(xù)版本會采用。