欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

為什么說Java比CC++慢?

謝彥文2年前34瀏覽0評論

的確,不可否認,Java運行效率上比C/C++是要慢一些,但隨著JVM/JIT的不斷升級優(yōu)化,這種速度上的差異會越來越小。

那為什么說Java比C/C++運行效率上要慢呢?且聽我說:

1、Java是解釋型語言、C/C++是編譯型語言:

C++可以理解為是C語言的升級擴展版本,C/C++的程序編譯出來的是機器碼,可以被CPU直接加載執(zhí)行的;而Java編譯出來的是字節(jié)碼,然后要通過JIT編譯器“翻譯”為機器碼,然后再被JVM加載執(zhí)行。Java中間多了個翻譯過程。

兩種語言的執(zhí)行過程大概如下:

  • Java:
    程序》編譯》字節(jié)碼》JVM加載處理》機器碼》執(zhí)行

  • C/C++:
    程序》靜態(tài)編譯器》機器碼》執(zhí)行

2、Java其實是運行在JVM(虛擬機)上的:

Java的跨平臺其實靠的就是與系統(tǒng)無關的字節(jié)碼與JVM來實現(xiàn)的,JVM可以理解為是一個虛擬機系統(tǒng),Java程序是跑在JVM上面的(JVM底層是用C實現(xiàn)的)。所以Java的性能還受JVM的配置影響。

而C/C++編譯的程序是不需要跑在虛擬機上的。

3、Java語言特性帶來的性能開銷:

Java采用的是動態(tài)鏈接、C/C++采用的是靜態(tài)鏈接,所以兩者性能上差距是有的。

另外JVM還會進行其它一些操作,如:字節(jié)碼加載、類型檢測、GC垃圾回收、類型轉(zhuǎn)換等等,這些操作也是要耗時的。


綜上,Java運行效率比C/C++要慢一點,是存在的,但隨著JVM及JIT的不斷優(yōu)化,這種速度上的差異只會越來越小。另外,Java是犧牲了部分性能來換取“一次編寫、到處運行”的跨平臺實現(xiàn),也是值得的。