HotSpot源码(二):Java与C语言对比
生活随笔
收集整理的這篇文章主要介紹了
HotSpot源码(二):Java与C语言对比
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們知道如果用C/C++寫程序,從源代碼到可執行程序需要經歷編譯,鏈接兩個步驟。但是用Java語言寫程序則不同,你只需要將你的源代碼編譯成字節碼就可以了,字節代碼通過Java虛機來運行。要概括上面兩種語言的這一不同之處,我們可以說:Java是通過Java解釋來執行的,C/C++是通過編譯來執行的。
C語言
C語言沒有常量池,它的編譯器在編譯的時候是從上到下順序展開的,所以要提前聲明函數,它的動態鏈接是基于符號的動態鏈接。
Java
而Java會將定義的函數放在常量池中,它只是將java代碼翻譯成字節碼,如果想讓程序運行起來,需要Java虛機在運行時動態加載(RunTime Link)其所需要的資源,使之成為一個可以運行的程序。Java語言這樣做的好處顯而易見,首先源程序只需要編譯一次,成為獨立與具體機器指令的中間文 件,然后這些字節碼就可以在任意的標準的Java虛機上運行。
C語言執行流程
C語言內存結構
add函數:
總結
以上是生活随笔為你收集整理的HotSpot源码(二):Java与C语言对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高并发负载均衡(四):基于keepali
- 下一篇: ZooKeeper实战(一):ZooKe