JAVA虛擬機(jī)是用什么語言寫的
- 作者:新網(wǎng)
- 來源:新網(wǎng)
- 瀏覽:100
- 2018-05-11 15:19:26
JAVA中就虛擬機(jī)是其他語言開發(fā)的,用的是C語言加上匯編語言,基于此之上就是JAVA本身了,虛擬機(jī)只是一個(gè)解析的作用。JAVA并不比C語言慢,說JAVA慢一般是九十年代那時(shí)候的JAVA。
JAVA中就虛擬機(jī)是其他語言開發(fā)的,用的是C語言加上匯編語言,基于此之上就是JAVA本身了,虛擬機(jī)只是一個(gè)解析的作用。JAVA并不比C語言慢,說JAVA慢一般是九十年代那時(shí)候的JAVA。

<
div> 在一段優(yōu)秀的JAVA程序和C程序執(zhí)行效率上來比較是沒有多大差距的 并且現(xiàn)在JAVA已經(jīng)可以像C語言那樣,直接編譯為可執(zhí)行文件(不用虛擬機(jī),跨平臺(tái)為代價(jià))了
不知道你看過 卓越編程之道二(運(yùn)用底層思維編寫高級(jí)代碼) 沒有,那里面詳細(xì)的講述了高級(jí)語言從編寫到編譯執(zhí)行的過程,通過目標(biāo)文件的反匯編對(duì)比,發(fā)現(xiàn)C,C++,JAVA,dephi等語言在同等質(zhì)量下的目標(biāo)文件長度上基本上沒多大區(qū)別,一門語言的運(yùn)行速度快慢,與你編寫代碼過程中是否符合編譯器規(guī)則息息相關(guān)。 有空你可以去看看這本書。
Java底層實(shí)現(xiàn)是用C語言寫的,因?yàn)樽隽撕芏喾庋b,所以比C語言速度慢?
JVM是c寫的,所以對(duì)JVM常用的攻擊就是buffer overflow。
c語言寫的,
java6.0都已經(jīng)開源了。
在
windows平臺(tái)的JVM實(shí)現(xiàn)是用VC寫的,你下載的JDK其實(shí)都有一個(gè)src.zip,那就是Java的源碼 。
原始是用C寫的,如javac命令等,后面的功能是java自身寫的,如api,現(xiàn)在大多都開源了,有興趣可以看看那個(gè)項(xiàng)目,叫openjdk,你也可以提供代碼,說不定后續(xù)版本會(huì)采用。